在网上找一个API,可以获取指定磁盘剩余空间,包括光驱中的光盘。
但是如果光驱中是空白光盘的话,将无法读取。因为空白光盘未格式化过,因此显示格式为RAW,所以无法读取。
至于如何读取空白光盘容量,我将在下一篇文章中描述。
获取磁盘剩余空间API:
BOOL WINAPI GetDiskFreeSpaceEx(
_In_opt_ LPCTSTR lpDirectoryName,
_Out_opt_ PULARGE_INTEGER lpFreeBytesAvailable,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
下面是一个使用例子:
HRESULT GetDiskSpaceForDisc() { float TotalBytes; float FreeBytesToCaller; float FreeBytes; ::GetDiskFreeSpaceEx(_T("I:"), (PULARGE_INTEGER)&FreeBytesToCaller, (PULARGE_INTEGER)&TotalBytes, (PULARGE_INTEGER)&FreeBytes); FreeBytesToCaller=(float)(((PULARGE_INTEGER)&FreeBytesToCaller)->HighPart<<2)+(float)((PULARGE_INTEGER)&FreeBytesToCaller)->LowPart/(1024*1024*1024); TotalBytes=(float)(((PULARGE_INTEGER)&TotalBytes)->HighPart<<2)+(float)((PULARGE_INTEGER)&TotalBytes)->LowPart/(1024*1024*1024); std::cout<<"totalspace:"<<TotalBytes<<"GB /n"; std::cout<<"freespace:"<<FreeBytesToCaller<<"GB /n"; return S_OK; }