我有一个应用程序,我不断检查磁盘空间并将其与特定值进行比较。现在磁盘空间计算如下:
ULARGE_INTEGER p1;
ULARGE_INTEGER p2;
ULARGE_INTEGER p3;
GetDiskFreeSpaceEx(".", &p1, &p2, &p3);
Run Code Online (Sandbox Code Playgroud)
现在从上面的方法我得到了变量 p3 中的可用空间。现在我如何将它与一个正常的整数值进行比较(算术运算)。此外,此代码必须在 32 位和 64 位平台上工作。或者如果有任何其他选项来计算可用磁盘空间?谢谢
ULARGE_INTEGER 是 Windows API 在编译器具有本机 64 位类型之前表示 64 位值的方式。
今天,在带有 Visual C++ 编译器的 Windows 上,在ULARGE_INTEGER*64 位本机类型(如uint64_t*or )之间进行指针转换是安全的unsigned long long*。
int compile_time_assert[(sizeof(ULARGE_INTEGER) == sizeof(unsigned long long)) ? 1 : -1];
unsigned long long freebytes = 0;
unsigned long long totalbytes = 0;
unsigned long long totalfree = 0;
GetDiskFreeSpaceEx(".", (ULARGE_INTEGER*)&freebytes, (ULARGE_INTEGER*)&totalbytes, (ULARGE_INTEGER*)&totalfree);
Run Code Online (Sandbox Code Playgroud)
否则,如果你想避免演员阵容,你可以这样做:
ULARGE_INTEGER p1 = {0};
ULARGE_INTEGER p2 = {0};
ULARGE_INTEGER p3 = {0};
unsigned long long freebytes = 0;
unsigned long long totalbytes = 0;
unsigned long long totalfree = 0;
GetDiskFreeSpaceEx(".", &p1, &p2, &p3);
freebytes = p1.QuadPart;
totalbytes = p2.QuadPart;
totalfree = p3.QuadPart;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |