当前位置:C++技术网 > 资讯 > 利用GetDiskFreeSpaceEx函数获得电脑磁盘容量

利用GetDiskFreeSpaceEx函数获得电脑磁盘容量

更新时间:2015-11-17 23:29:52浏览次数:1+次

函数GetDiskFreeSpaceEx声明如下:


WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceExA(
    __in_opt LPCSTR lpDirectoryName,
    __out_opt PULARGE_INTEGER lpFreeBytesAvailableToCaller,
    __out_opt PULARGE_INTEGER lpTotalNumberOfBytes,
    __out_opt PULARGE_INTEGER lpTotalNumberOfFreeBytes
    );
WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceExW(
    __in_opt LPCWSTR lpDirectoryName,
    __out_opt PULARGE_INTEGER lpFreeBytesAvailableToCaller,
    __out_opt PULARGE_INTEGER lpTotalNumberOfBytes,
    __out_opt PULARGE_INTEGER lpTotalNumberOfFreeBytes
    );
#ifdef UNICODE
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
#else
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
#endif // !UNICODE
 
lpDirectoryName是驱动器的名称。
lpFreeBytesAvailableToCaller是用户可用的磁盘空间。
lpTotalNumberOfBytes是磁盘总共的空间。
lpTotalNumberOfFreeBytes是磁盘空闲的空间。以上都是字节为单位。
运行实例:



int DiskInfoManage::GetTotalSpaceEx(TCHAR *szDisk)
{
	ULARGE_INTEGER  dwAvailalbe, dwFree, dwTotal;
	BOOL bRet = GetDiskFreeSpaceEx(szDisk, &dwAvailalbe, &dwTotal, &dwFree);
	if (bRet)
	{
		return dwTotal.QuadPart;
	}
	return 0;
}