DWORD SectorsPerCluster; // sectors per cluster
DWORD BytesPerSector; // bytes per sector
DWORD NumberOfFreeClusters; // free clusters
DWORD TotalNumberOfClusters; // total clusters
if ( GetDiskFreeSpace(
"c:\\",
&SectorsPerCluster,
&BytesPerSector,
&NumberOfFreeClusters,
&TotalNumberOfClusters ))
{
m_total =(TotalNumberOfClusters/1024)
*(SectorsPerCluster*BytesPerSector);
m_free=(NumberOfFreeClusters/1024)
*(SectorsPerCluster*BytesPerSector);
m_used=((TotalNumberOfClusters-NumberOfFreeClusters)/1024)
*(SectorsPerCluster*BytesPerSector);
UpdateData ( FALSE );
}
else
MessageBox("error");
-——————————————————————————————————————————————
BOOL GetDiskFreeSpace(
LPCTSTR lpRootPathName, // root path
LPDWORD lpSectorsPerCluster, // sectors per cluster
LPDWORD lpBytesPerSector, // bytes per sector
LPDWORD lpNumberOfFreeClusters, // free clusters
LPDWORD lpTotalNumberOfClusters // total clusters
);
或者
BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // directory name
PULARGE_INTEGER lpFreeBytesAvailable, // bytes available to caller
PULARGE_INTEGER lpTotalNumberOfBytes, // bytes on disk
PULARGE_INTEGER lpTotalNumberOfFreeBytes // free bytes on disk
);
评论