Visual Studio 6Visual C++ 7.0Windows 2000Visual C++ 6.0Windows XPIntermediateDevVisual StudioWindowsC++
Disk free space






2.51/5 (36 votes)
This code is used to check for free space available on logical disks
Introduction
This code is used to check for free space available on logical disks.
How to use it
Copy the source files HardDiskManager.cpp and HardDiskManager.h to your project directory and add them to your project.
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; } ///////////////////////////////////////////////////////////////