#包含<窗口.h>
#包含<标io.h>
极 取磁盘空间信息(长针常串 驱动针串)
{
双字64 释放字节给调用者四字,总字节四字,释放字节四字;
双字 每簇节双字,每节字节双字,释放块双字, 总块双字;
极 b结果;
//使用取磁盘自由空间扩获取磁盘信息并打印结果
b结果=取磁盘自由空间扩(驱动针串,
(p正大整数)&释放字节给调用者四字,
(p正大整数)&总字节四字,
(p正大整数)&释放字节四字);
如(b结果)
{
打印格式("使用取磁盘自由空间扩获取磁盘空间信息\n");
打印格式("可获得的空闲空间(字节): \t%I64d\n",释放字节给调用者四字);
打印格式("空闲空间(字节):\t\t%I64d\n",释放字节四字);
打印格式("磁盘总容量(字节):\t\t%I64d\n",总字节四字);
}
//使用取磁盘可用空间获取磁盘信息并打印结果
b结果=取磁盘可用空间(驱动针串,&每簇节双字,&每节字节双字,&释放块双字,&总块双字);
如(b结果)
{
打印格式("\n使用取磁盘可用空间获取磁盘空间信息\n");
打印格式("空闲的簇数量 : \t\t\t%d\n",释放块双字);
打印格式("总簇数量 : \t\t\t%d\n",总块双字);
打印格式("每簇的扇区数量 : \t\t%d\n",每簇节双字);
打印格式("每扇区的容量(字节): \t\t%d\n",每节字节双字);
打印格式("空闲空间(字节): \t\t%I64d\n",
(双字64)释放块双字*
(双字64)每簇节双字*(双字64)每节字节双字);
打印格式("磁盘总容量(字节): \t\t%I64d",
(双字64)总块双字*
(双字64)每簇节双字*(双字64)每节字节双字);
}
中 b结果;
}
GetDiskFreeSpace并不直接返回磁盘的总容量和空闲空间容量,而是使用总簇数,空闲的簇数,每簇的扇区数,每扇区的字节数来表示.用户编程时,可用它们的乘积来获得最终结果.而GetDiskFreeSpaceEx使用ULARGE_INTEGER(DWORD64)类型数据来存储磁盘空间总空间和剩余空间,所以可直接取结果.
GetDiskFreeSpaceEx函数使用到了数据结构ULARGE_INTEGER,PULARGE_INTEGER数据类型是指针.低位存储于前,高位存储于后,与DWORD64的存储形式是一致的,所以可以直接强制类型转换为DOWRD64类型.也可以直接使用QuadPart成员,QuadPart成员是ULONGLONG形数据结构,与DWORD64具有同样长度.
本文分享自微信公众号 - 周三石(gh_6eecda59ada1)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。