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;
}
[Win32]獲取當前系統可用磁盤空間最大的盤符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.