【磁盘处理相关方法】2,得到磁盘总空间、可用剩余空间
2014-01-12 20:06
351 查看
1,涉及的API
GetDiskFreeSpaceEx,声明如下:WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA( __in_opt LPCSTR lpDirectoryName, __out_opt PULARGE_INTEGER lpFreeBytesAvailableToCaller, __out_opt PULARGE_INTEGER lpTotalNumberOfBytes, __out_opt PULARGE_INTEGER lpTotalNumberOfFreeBytes ); WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW( __in_opt LPCWSTR lpDirectoryName, __out_opt PULARGE_INTEGER lpFreeBytesAvailableToCaller, __out_opt PULARGE_INTEGER lpTotalNumberOfBytes, __out_opt PULARGE_INTEGER lpTotalNumberOfFreeBytes ); #ifdef UNICODE #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW #else #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA #endif // !UNICODE
参数说明:
lpDirectoryName是驱动器的名称。注意需要传入"C:","D:"形式的名称。
lpFreeBytesAvailableToCaller 接收用户可用的磁盘空间。
lpTotalNumberOfBytes 接收磁盘总共的空间。
lpTotalNumberOfFreeBytes 接收磁盘空闲的空间。
以上都是字节为单位。
2,使用
这里我们获取一个GB为单位的的浮点数磁盘大小。FLOAT DiskHelper::GetDiskFreeSpaceAsGB(WCHAR cDiskName) { FLOAT fFreeSpaceAsGB = 0.0f; ULARGE_INTEGER uiFreeBytesAvailableToCaller; ULARGE_INTEGER uiTotalNumberOfBytes; ULARGE_INTEGER uiTotalNumberOfFreeBytes; WCHAR szPath[2] = {0}; wcscat(szPath,cDiskName); wcscat(szPath,L":"); if(GetDiskFreeSpaceExW(szPath, &uiFreeBytesAvailableToCaller, &uiTotalNumberOfBytes, &uiTotalNumberOfFreeBytes)) { fFreeSpaceAsGB = (FLOAT)((LONGLONG)(uiFreeBytesAvailableToCaller.QuadPart)/1024.0f/1024.0f/1024.f); } return fFreeSpaceAsGB; }
同样的,获取总空间大小,就使用uiTotalNumberOfBytes这个值就可以了。
3,效果
相关文章推荐
- 【磁盘处理相关方法】3,得到最空闲的磁盘
- C# 收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)
- COS如何得到磁盘可用空间
- Python实现获取磁盘剩余空间的2种方法
- 调用API函数得到磁盘上剩余空间的值
- 收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)
- 得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间
- 得到磁盘剩余空间
- 两种方法,获取磁盘剩余空间--PYTHON
- VC 得到磁盘的空间(总的、已用的、剩余的)
- 在 Mac OS X Lion 中查看剩余磁盘空间最简单的方法
- Linux磁盘剩余空间查看方法
- 两种方法,获取磁盘剩余空间
- df 查看磁盘已使用多少空间、剩余多少空间、可用多少空间
- Linux磁盘空间不足处理方法
- 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档 的处理方法
- 得到磁盘上剩余空间的值
- C# 收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)
- linux磁盘空间用满的处理方法
- java 得到磁盘的可用空间