C++遍歷磁盤驅(qū)動器的示例代碼
更新時間:2021年01月03日 12:21:01 作者:凌冷
這篇文章主要介紹了C++遍歷磁盤驅(qū)動器的示例代碼,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
#include <stdio.h>
#include <windows.h>
typedef struct tagDRIVER
{
// (1)磁盤盤符
wchar_t disk;
// (2)磁盤總的大小
double all;
// (3)磁盤可用空間
double free;
// (4)磁盤類型(是光盤、硬盤、還是移動硬盤)
int type;
}DRIVER;
void GetDrivers()
{
BOOL fResult;
// 定義 磁盤消息結(jié)構(gòu)體
DRIVER dir;
// 遍歷磁盤
for (wchar_t d = 'A'; d <= 'Z'; d++)
{
// 磁盤消息結(jié)構(gòu)體清0
memset(&dir, 0, sizeof(DRIVER));
unsigned _int64 i64FreeBytesToCaller;
unsigned _int64 i64TotalBytes;
unsigned _int64 i64FreeBytes;
TCHAR szTemp[3] = { d, ':', '\0' };
// 獲取磁盤類型
UINT uType = GetDriveTypeW(szTemp);
// DRIVE_UNKNOWN 無法確定驅(qū)動器類型。
// DRIVE_NO_ROOT_DIR 根路徑無效; 例如,指定路徑上沒有安裝卷。
// DRIVE_REMOVABLE 驅(qū)動器有可移動介質(zhì); 例如,軟盤驅(qū)動器,拇指驅(qū)動器或閃存卡讀卡器。
// DRIVE_FIXED 驅(qū)動器有固定的媒體; 例如,硬盤驅(qū)動器或閃存驅(qū)動器。
// DRIVE_REMOTE 該驅(qū)動器是遠(yuǎn)程(網(wǎng)絡(luò))驅(qū)動器。
// DRIVE_CDROM 該驅(qū)動器是一個CD-ROM驅(qū)動器。
// DRIVE_RAMDISK 驅(qū)動器是RAM磁盤。
switch (uType)
{
case DRIVE_FIXED:
{
// 硬盤是1
dir.type = 1;
break;
}
case DRIVE_CDROM:
{
// 光盤是2
dir.type = 2;
break;
}
case DRIVE_REMOTE:
{
// 移動硬盤是3
dir.type = 3;
break;
}
default:
{
continue;
}
}
// GetDiskFreeSpaceEx獲取與一個磁盤的組織以及剩余空間容量有關(guān)的信息
fResult = GetDiskFreeSpaceEx(szTemp, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes);
// 盤符
dir.disk = d;
if (fResult)
{
dir.all = (double)(i64TotalBytes / 1024.0 / 1024 / 1024);
dir.free = (double)(i64FreeBytesToCaller / 1024.0 / 1024 / 1024);
}
else
{
dir.all = 0.0;
dir.free = 0.0;
}
printf("%C盤:共%.2fGB, 可用%.2fGB, 磁盤類型:%d\n", dir.disk, dir.all, dir.free, dir.type);
}
}
int main()
{
GetDrivers();
getchar();
return 0;
}
以上就是C++遍歷磁盤驅(qū)動器的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++遍歷磁盤驅(qū)動器的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++項(xiàng)目基于HuffmanTree實(shí)現(xiàn)文件的壓縮與解壓縮功能
這篇文章主要介紹了C++項(xiàng)目基于HuffmanTree實(shí)現(xiàn)文件的壓縮與解壓縮功能,本文給大家提到文件壓縮的概念介紹及壓縮方法,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
C++ SOCKET多線程實(shí)現(xiàn)聊天小程序
這篇文章主要為大家詳細(xì)介紹了C++ SOCKET多線程實(shí)現(xiàn)聊天小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06
C語言數(shù)據(jù)結(jié)構(gòu)與算法之鏈表(二)
在這篇文章中,我們將拋開令人頭禿的指針和結(jié)構(gòu)體,我們將另外使用一種數(shù)組來實(shí)現(xiàn)的方式,叫做模擬鏈表。讓來跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
用C實(shí)現(xiàn)PHP擴(kuò)展 Image_Tool 圖片常用處理工具類的使用
該擴(kuò)展是基于ImageMagick基礎(chǔ)實(shí)現(xiàn)的,圖片操作調(diào)用的是ImageMagick API2013-04-04
C/C++編譯報(bào)錯printf was not declared in 
這篇文章主要介紹了C/C++編譯報(bào)錯printf was not declared in this scope問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
C語言的getc()函數(shù)和gets()函數(shù)的使用對比
這篇文章主要介紹了C語言的getc()函數(shù)和gets()函數(shù)的使用對比,從數(shù)據(jù)流中一個是讀取字符一個是讀取字符串,需要的朋友可以參考下2015-08-08

