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

