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

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值