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

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





阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭