[C++] 纯文本查看 复制代码
BOOL WINAPI GetDiskFreeSpace(
__in LPCTSTR lpRootPathName,
__out LPDWORD lpSectorsPerCluster,
__out LPDWORD lpBytesPerSector,
__out LPDWORD lpNumberOfFreeClusters,
__out LPDWORD lpTotalNumberOfClusters
);
[C++] 纯文本查看 复制代码
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "chs");
BOOL bResult;
DWORD dwSectorsPerCluster, dwBytePerSector, dwNumberOfFreeClusters, dwTotalNumberOfClusters;
bResult = GetDiskFreeSpace (argv[1], &dwSectorsPerCluster, &dwBytePerSector, &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
if (bResult) {
_tprintf (TEXT("\n ==== %s 盘空间信息 ==== \n"), argv[1]);
_tprintf (TEXT("总的簇数量:\t\t%d\n"), dwTotalNumberOfClusters);
_tprintf (TEXT("空闲的簇数量:\t\t%d\n"), dwNumberOfFreeClusters);
_tprintf (TEXT("每簇扇区数:\t\t%d\n"), dwSectorsPerCluster);
_tprintf (TEXT("每扇区字节数:\t\t%d\n"), dwBytePerSector);
_tprintf (TEXT("磁盘分区总容量(GB):\t\t%.1f GB\n"), (double)((DWORD64)dwTotalNumberOfClusters * (DWORD64)dwSectorsPerCluster * (DWORD64)dwBytePerSector)/(1024*1024*1024) );
_tprintf (TEXT("空闲空间容量(GB):\t\t%.1f GB\n"), (double)((DWORD64)dwNumberOfFreeClusters * (DWORD64)dwSectorsPerCluster * (DWORD64)dwBytePerSector)/(1024*1024*1024) );
}
return 0;
}