C++ 獲得本地磁盤盤符的容量信息

e2ex 9年前發布 | 2K 次閱讀 C/C++

編程過程中涉及存儲部分常常需要選擇存儲位置,此時比較關心的是各個磁盤盤符空間的總大小和剩余空間的大小。通過MFC的 List Control 控件可以將本地的磁盤容量信息顯示出來并提供給用戶選擇的接口,是一種存儲文件不錯的思路。下面的代碼實現了獲得本地磁盤盤符容量信息的部分:

    ULARGE_INTEGER nFreeBytesAvailable;
ULARGE_INTEGER nTotalNumberOfBytes;
ULARGE_INTEGER nTotalNumberOfFreeBytes;

WCHAR Drive[MAX_PATH] = { 0 };//初始化數組用以存儲盤符信息  
GetLogicalDriveStrings(MAX_PATH, Drive);//獲得本地所有盤符存在Drive數組中  

CString myDrive;  
int i = 0;  
while (Drive[i - 1] != '\0' || Drive[i] != '\0')//搜索數組嘗試得到盤符信息,如果兩者皆否,則數組搜索到盡頭  
{  
        myDrive = L"";  
        myDrive = Drive[i];  
    myDrive = myDrive + L":";//將盤符信息的格式調整為像“C:”這種格式,以作為GetDiskFreeSpaceEx函數的第一個參數  
    i += 4;  

    if (GetDiskFreeSpaceEx(myDrive,  
        &nFreeBytesAvailable,  
        &nTotalNumberOfBytes,  
        &nTotalNumberOfFreeBytes))//利用GetDiskFreeSpaceEx函數獲得指定磁盤信息  
    {  
        long mywholespace = nTotalNumberOfBytes.QuadPart/1024/1024/1024;//得到磁盤總空間,單位為G  
        long myfreespace = nTotalNumberOfFreeBytes.QuadPart/1024/1024/1024;//得到磁盤剩余空間,單位為G  
    }  
}  </pre> 


 本文由用戶 e2ex 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!