|
在win10中这个函数不起作用了,得到的剩余空间与已使用空间一样大,其实得到的都是剩余空间,怎么回事?
- ULARGE_INTEGER nFreeBytesAvailable = { 0 };
- ULARGE_INTEGER nTotalNumberOfBytes = { 0 };
- ULARGE_INTEGER nTotalNumberOfFreeBytes = { 0 };
- TCHAR buf[MAX_PATH] = {};
- GetLogicalDriveStrings(MAX_PATH, buf);
- TCHAR* pDrives = buf;
- while (*pDrives != 0) {
- if (GetDiskFreeSpaceEx(pDrives, &nFreeBytesAvailable, &nTotalNumberOfBytes, &nTotalNumberOfFreeBytes))
- {
- TCHAR chBuf[256];
- wsprintf(chBuf, _T("%I64d,总共%I64dG,剩余%I64dG\r\n"),
- (nFreeBytesAvailable.QuadPart) / 1024 / 1024 / 1024, (nTotalNumberOfBytes.QuadPart) / 1024 / 1024 / 1024, (nTotalNumberOfFreeBytes.QuadPart) / 1024 / 1024 / 1024);
- OutputDebugString(chBuf);
- }
- pDrives += wcslen(pDrives) + 1;
-
- }
复制代码
&nFreeBytesAvailable ,,Available 可用的,可获得的!
这个参数并不是已用空间,官方的说明是:调用线程关联的用户可用的可用空间总量。
所以你减下
(nTotalNumberOfBytes.QuadPart - nFreeBytesAvailable.QuadPart) / 1024 / 1024 / 1024
|
上一篇: vs2013在更新win11后无法新建C++项目了,怎么解决,先谢谢大家了。下一篇: 如何重获焦点?setactivewindow,setfocus都不管用
|