CString strRootPath="c:\\";//带根目录标记的磁盘符号
DWORD dwSectorsPerCluster=0;//每簇中扇区数
DWORD dwBytesPerSector=0;//每扇区中字节数
DWORD dwFreeClusters=0;//剩余簇数
DWORD dwTotalClusters=0;//总簇数
if (GetDiskFreeSpace(strRootPath,&dwSectorsPerCluster,&dwBytesPerSector,
&dwFreeClusters,&dwTotalClusters))
{
//m_dwVolSize=dwTotalClusters*dwSectorsPerCluster*dwBytesPerSector;//不能这样,否则越界
double dd=dwSectorsPerCluster*dwBytesPerSector/(1024.*1024.);//转换为 M
dd=dd/1024.;//转换为 G
m_dVolSize=dwTotalClusters*dd;//该磁盘总大小
UpdateData(FALSE);
}
else
{
AfxMessageBox("不能获取磁盘容量");
}
本博客展示了如何使用C++获取磁盘容量,并将其从扇区数转换为更易理解的GB单位。通过使用GetDiskFreeSpace函数,我们可以轻松获取到剩余簇数、每簇扇区数、每扇区字节数以及总簇数,从而计算出磁盘的总大小。

359

被折叠的 条评论
为什么被折叠?



