[Win32]获取当前系统可用磁盘空间最大的盘符

来源:互联网 发布:怎么发网络短信 编辑:程序博客网 时间:2024/06/05 07:45
int GetMostFreeSpaceDisk(TCHAR &aDriveName){        TCHAR driveNames[MAX_PATH] = {0};        DWORD len = GetLogicalDriveStrings(MAX_PATH, driveNames);                TCHAR maxDrive[MAX_PATH] = {0};        DWORD count = len / 4;        TCHAR *p = driveNames;        ULARGE_INTEGER lastSize;        lastSize.QuadPart = 0;        for (DWORD i = 0; i < count; ++i)        {                if (GetDriveType(p) != DRIVE_FIXED)                {                        p += 4;                        continue;                }                TCHAR driveName[MAX_PATH] = {0};                _tcscpy_s(driveName, MAX_PATH, p);                ULARGE_INTEGER FreeBytesAvailable;                ULARGE_INTEGER TotalNumberOfBytes;                ULARGE_INTEGER TotalNumberOfFreeBytes;                GetDiskFreeSpaceEx(driveName, &FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes);                if (FreeBytesAvailable.QuadPart > lastSize.QuadPart)                {                        _tcscpy_s(maxDrive, MAX_PATH, driveName);                        lastSize.QuadPart = FreeBytesAvailable.QuadPart;                        aDriveName = maxDrive[0];                }                p += 4;                Sleep(100);        }        return 0;}

0 0
原创粉丝点击