C++遍历磁盘驱动器的示例代码
更新时间:2021年01月03日 12:21:01 作者:凌冷
这篇文章主要介绍了C++遍历磁盘驱动器的示例代码,帮助大家更好的理解和使用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; // 定义 磁盘消息结构体 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++遍历磁盘驱动器的资料请关注脚本之家其它相关文章!
相关文章
C++项目基于HuffmanTree实现文件的压缩与解压缩功能
这篇文章主要介绍了C++项目基于HuffmanTree实现文件的压缩与解压缩功能,本文给大家提到文件压缩的概念介绍及压缩方法,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下2021-08-08用C实现PHP扩展 Image_Tool 图片常用处理工具类的使用
该扩展是基于ImageMagick基础实现的,图片操作调用的是ImageMagick API2013-04-04C/C++编译报错printf was not declared in 
这篇文章主要介绍了C/C++编译报错printf was not declared in this scope问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-08-08
最新评论