gpt4 book ai didi

C++遍历磁盘驱动器的示例代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C++遍历磁盘驱动器的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#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;
   // 定义 磁盘消息结构体
   DRIVER dir;
   // 遍历磁盘
   for ( wchar_t d = 'A' ; d <= 'Z' ; d++)
   {
     // 磁盘消息结构体清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 无法确定驱动器类型。
     // DRIVE_NO_ROOT_DIR 根路径无效; 例如,指定路径上没有安装卷。
     // DRIVE_REMOVABLE 驱动器有可移动介质; 例如,软盘驱动器,拇指驱动器或闪存卡读卡器。
     // DRIVE_FIXED 驱动器有固定的媒体; 例如,硬盘驱动器或闪存驱动器。
     // DRIVE_REMOTE 该驱动器是远程(网络)驱动器。
     // DRIVE_CDROM 该驱动器是一个CD-ROM驱动器。
     // DRIVE_RAMDISK 驱动器是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获取与一个磁盘的组织以及剩余空间容量有关的信息
     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++遍历磁盘驱动器的示例代码的详细内容,更多关于C++遍历磁盘驱动器的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/duxie/p/11204081.html 。

最后此篇关于C++遍历磁盘驱动器的示例代码的文章就讲到这里了,如果你想了解更多关于C++遍历磁盘驱动器的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com