磁盘可用空间






2.51/5 (36投票s)
此代码用于检查逻辑磁盘的可用空间。
引言
这段代码用于检查逻辑磁盘上的可用空间。
如何使用
将源文件 HardDiskManager.cpp 和 HardDiskManager.h 复制到您的项目目录,并将其添加到您的项目中。
CHardDiskManager::CHardDiskManager() { // bytes available to caller m_uliFreeBytesAvailable.QuadPart = 0L; // bytes on disk m_uliTotalNumberOfBytes.QuadPart = 0L; // free bytes on disk m_uliTotalNumberOfFreeBytes.QuadPart = 0L; } CHardDiskManager::~CHardDiskManager() { } bool CHardDiskManager::CheckFreeSpace(LPCTSTR lpDirectoryName) { if( !GetDiskFreeSpaceEx( lpDirectoryName, // directory name &m_uliFreeBytesAvailable, // bytes available to caller &m_uliTotalNumberOfBytes, // bytes on disk &m_uliTotalNumberOfFreeBytes) ) // free bytes on disk return false; return true; } DWORD64 CHardDiskManager::GetFreeBytesAvailable(void) { return m_uliFreeBytesAvailable.QuadPart; } DWORD64 CHardDiskManager::GetTotalNumberOfBytes(void) { return m_uliTotalNumberOfBytes.QuadPart; } DWORD64 CHardDiskManager::GetTotalNumberOfFreeBytes(void) { return m_uliTotalNumberOfFreeBytes.QuadPart; } double CHardDiskManager::GetFreeGBytesAvailable(void) { return (double)( (signed __int64)(m_uliFreeBytesAvailable.QuadPart) / 1.0e9 ); } double CHardDiskManager::GetTotalNumberOfGBytes(void) { return (double)( (signed __int64)(m_uliTotalNumberOfBytes.QuadPart) / 1.0e9 ); } double CHardDiskManager::GetTotalNumberOfFreeGBytes(void) { return (double)( (signed __int64)(m_uliTotalNumberOfFreeBytes.QuadPart) / 1.0e9 ); } // // Application // #include "HardDiskManager.h" using namespace std; void main( int argc, char** argv ) { CHardDiskManager manager; // Set the directory name with " : " // Ex:. C: , c: , F: , ... manager.CheckFreeSpace("c:"); cout << "Drive C:\\" << endl; cout << "FreeBytesAvailable: " << manager.GetFreeGBytesAvailable() << " GBytes. " << endl; cout << "TotalNumberOfBytes: " << manager.GetTotalNumberOfGBytes() << " GBytes. " << endl; cout << "TotalNumberOfFreeBytes: " << manager.GetTotalNumberOfFreeGBytes() << " GBytes. " << endl; manager.CheckFreeSpace("d:"); cout << "Drive D:\\" << endl; cout << "FreeBytesAvailable: " << manager.GetFreeGBytesAvailable() << " GBytes. " << endl; cout << "TotalNumberOfBytes: " << manager.GetTotalNumberOfGBytes() << " GBytes. " << endl; cout << "TotalNumberOfFreeBytes: " << manager.GetTotalNumberOfFreeGBytes() << " GBytes. " << endl; return 0; } ///////////////////////////////////////////////////////////////