写文件时怎么判断有足够大的剩余硬盘空间?

解决方案 »

  1.   


    __inline ULONGLONG  GetDiskSpace(char cDriverName, BOOL bFreeSpace = FALSE) 
    {
    ULARGE_INTEGER FreeSpace,CallerSpace,TotalSpace;  //分别表示剩余空间,可用空间和总空间
    CString  strRoot; strRoot.Format("%c%s", cDriverName, ":\\");
    GetDiskFreeSpaceEx(strRoot, &CallerSpace, &TotalSpace, &FreeSpace); if(bFreeSpace)
    return CallerSpace.QuadPart;
    else
    return TotalSpace.QuadPart;
    }
      

  2.   

    GetDiskFreeSpaceEx或者GetDiskFreeSpace
      

  3.   

    用上面的API就可以,我弄过,。
      

  4.   

    ULONGLONG  GetDiskSpace(char cDriverName, BOOL bFreeSpace = FALSE) 
    {
        ULARGE_INTEGER FreeSpace,CallerSpace,TotalSpace;  //分别表示剩余空间,可用空间和总空间
        CString  strRoot;    strRoot.Format("%c%s", cDriverName, ":\\");
        GetDiskFreeSpaceEx(strRoot, &CallerSpace, &TotalSpace, &FreeSpace);    if(bFreeSpace)
            return CallerSpace.QuadPart;
        else
            return TotalSpace.QuadPart;
    }
      

  5.   

    一般不需要判断,如果写失败,再根据错误码来判断原因。有时文件很大时需要事先判断各个逻辑磁盘的剩余空间,可以用GetDiskFreeSpaceEx函数。