#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、

本文介绍如何在Qt环境下,利用Windows系统函数GetDiskFreeSpaceEx获取磁盘容量和剩余空间。需要注意#include 'Windows.h'以及考虑C++中long类型长度限制,可能需用到long long类型。

8366

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



