关闭

如何获取磁盘剩余空间(包括光驱中的光盘)

929人阅读 评论(0) 收藏 举报

在网上找一个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;
}





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:53356次
    • 积分:803
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:0篇
    • 译文:0篇
    • 评论:7条
    最新评论