获取磁盘空间大小主要有两个API 。GetDiskFreeSpace 和GetDiskFreeSpaceEx。
BOOL WINAPI GetDiskFreeSpace( _In_ LPCTSTR lpRootPathName, _Out_ LPDWORD lpSectorsPerCluster, _Out_ LPDWORD lpBytesPerSector, _Out_ LPDWORD lpNumberOfFreeClusters, _Out_ LPDWORD lpTotalNumberOfClusters );
lpRootPathName // 磁盘根目录,如果为NULL则使用的是当前磁盘根目录
lpSectorsPerCluster //是个指针,获取每簇的扇区数lpBytesPerSector //获取每个扇区的字节数使用GetDiskFreeSpaceEx可以避免使用算数来获取磁盘空间大小。lpNumberOfFreeClusters //空闲的簇数lpTotalNumberOfClusters //总共的簇数
BOOL WINAPI GetDiskFreeSpaceEx( _In_opt_ LPCTSTR lpDirectoryName, _Out_opt_ PULARGE_INTEGER lpFreeBytesAvailable, _Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes, _Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes );
lpDirectoryName //磁盘目录