頭文件
#include <windows.h>
#include <wtypes.h>
函數
GetDiskFreeSpaceExA 獲取剩余可用空間
/// 得到盤符, 例如: "C:\\"
std::string str_disk_name = log_info_.path_.substr(0, 3);
DWORD64 qwFreeBytesToCaller = 0;
DWORD64 qwTotalBytes = 0;
DWORD64 qwFreeBytes = 0;
///使用GetDiskFreeSpaceEx獲取磁盤信息並打印結果
BOOL bResult = GetDiskFreeSpaceExA( str_disk_name.c_str(),
(PULARGE_INTEGER)&qwFreeBytesToCaller,
(PULARGE_INTEGER)&qwTotalBytes,
(PULARGE_INTEGER)&qwFreeBytes) ;
/// 讀取成功
if (bResult)
{
/// 如果還剩下5G空閑空間,則禁止寫入日志
qwFreeBytesToCaller /= (1024 * 1024 * 1024);
if (5 >= qwFreeBytesToCaller)
;
//printf("使用GetDiskFreeSpaceEx獲取磁盤空間信息\n");
//printf("可獲得的空閑空間(字節): \t%I64d\n", qwFreeBytesToCaller);
//printf("空閑空間(字節): \t\t%I64d\n", qwFreeBytes);
//printf("磁盤總容量(字節): \t\t%I64d\n", qwTotalBytes);
}
/// 讀取失敗
else
return false;