C++遍歷磁盤(pán)驅(qū)動(dòng)器的示例代碼
更新時(shí)間:2021年01月03日 12:21:01 作者:凌冷
這篇文章主要介紹了C++遍歷磁盤(pán)驅(qū)動(dòng)器的示例代碼,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
#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)類型(是光盤(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)類型
UINT uType = GetDriveTypeW(szTemp);
// DRIVE_UNKNOWN 無(wú)法確定驅(qū)動(dòng)器類型。
// 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)類型:%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)文章
fatal error LNK1104: 無(wú)法打開(kāi)文件“l(fā)ibc.lib”的解決方法
本篇文章是對(duì)fatal error LNK1104: 無(wú)法打開(kāi)文件“l(fā)ibc.lib”的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C++聚合體初始化aggregate initialization詳細(xì)介紹
這篇文章主要介紹了C++聚合體初始化aggregate initialization,C++有很多初始化對(duì)象的方法。其中之一叫做 聚合體初始化(aggregate initialization) ,這是聚合體專有的一種初始化方法2023-02-02
C語(yǔ)言一級(jí)指針二級(jí)指針和三級(jí)指針區(qū)別及使用詳解
這篇文章主要為大家介紹了C語(yǔ)言一級(jí)指針二級(jí)指針和三級(jí)指針,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
C/C++ break和continue區(qū)別及使用方法
這篇文章主要介紹了C/C++ break和continue區(qū)別及使用方法的相關(guān)資料,需要的朋友可以參考下2017-07-07

