您的位置:首页 > 编程语言 > Qt开发

Qt中获得磁盘容量和剩余磁盘空间(Windows平台)

2012-05-31 20:31 393 查看
#include "Windows.h"
#include <QtGlobal>

int main(int argc, char *argv[]){
	unsigned long long freeBytesToCaller=0,totalBytes=0,freeBytes=0;
	bool b;
	b=GetDiskFreeSpaceEx(QString("D:/").toStdWString().c_str(),(PULARGE_INTEGER)&freeBytesToCaller,
		(PULARGE_INTEGER)&totalBytes,(PULARGE_INTEGER)&freeBytes);
	qDebug()<<(QString("b=%1,freeBytesToCaller=%2,totalBytes=%3,freeBytes=%4,\
				 PULARGE_INTEGER type=%5,freeBytesToCaller type=%6,\
				 sizeof(freeBytesToCaller)=%7.")
				.arg(b).arg(freeBytesToCaller).arg(totalBytes).arg(freeBytes)
				.arg(typeid(PULARGE_INTEGER).name()).arg(typeid(unsigned _int64).name())
				.arg(sizeof(freeBytesToCaller))
		);
}


注意,GetDiskFreeSpaceEx是Windows的系统函数,所以需要#include "Windows.h",该函数的实现在kernel32.lib中。

另外,C++中的long或long int类型的长度是4字节,long long类型才是8字节!

参见:

1、使用C++对磁盘进行检测,获取磁盘相应的信息

2、C/C++中的64位整数(__int64 and long long)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: