#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, , sizeof(DRIVER));
unsigned _int64 i64FreeBytesToCaller;
unsigned _int64 i64TotalBytes;
unsigned _int64 i64FreeBytes;
TCHAR szTemp[] = { 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 = ;
break;
}
case DRIVE_CDROM:
{
// 光盘是2
dir.type = ;
break;
}
case DRIVE_REMOTE:
{
// 移动硬盘是3
dir.type = ;
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 / / );
dir.free = (double)(i64FreeBytesToCaller / 1024.0 / / );
}
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 ;
}

C++遍历磁盘驱动器的更多相关文章

  1. ocky勒索软件恶意样本分析1

    locky勒索软件恶意样本分析1 1 locky勒索软件构成概述 前些时期爆发的Locky勒索软件病毒这边也拿到了一个样本,简要做如下分析.样本主要包含三个程序: A xx.js文件:Jscript脚 ...

  2. FindFirstVolume系列函数遍历驱动器,获取驱动器信息

    什么是“卷”?卷,又称为“逻辑驱动器”,是 NTFS, FAT32 等文件系统组织结构的最高层.卷是存储设备(如硬盘)上由文件系统管理的一块区域,是在逻辑上相互隔离的存储单元.一个磁盘分区至少包含一个 ...

  3. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  4. 邻接表的广度优先遍历(java版)

    到 0 的权是 91 到 2 的权是 31 到 3 的权是 61 到 4 的权是 7 2 到 0 的权是 22 到 3 的权是 5 3 到 0 的权是 33 到 4 的权是 1 4 到 2 的权是 2 ...

  5. 邻接矩阵的深度优先遍历(java版)

    这是一个有向边带权的图 顶点数组:[v0, v1, v2, v3, v4] 边数组: v0 v1 v2 v3 v4 v0 6 v1 9 3 v2 2 5 v3 1 v4 package com.dat ...

  6. 二叉树的创建和遍历(C版和java版)

    以这颗树为例:#表示空节点前序遍历(根->左->右)为:ABD##E##C#F## 中序遍历(左->根->右)为:#D#B#E#A#C#F# 后序遍历(左->右-> ...

  7. To Java程序员:切勿用普通for循环遍历LinkedList

    ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...

  8. 遍历dynamic的方式

    一.遍历ExpandoObject /// <summary> /// 遍历ExpandoObject /// </summary> [TestMethod] public v ...

  9. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

随机推荐

  1. 团队作业-Beta冲刺(4/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  2. 【转】使用fastboot命令刷机流程详解

    一.Fastboot是什么? 1.1 首先介绍Recovery模式(卡刷) 在系统进行定制时,编译系统会编译出一份ZIP的压缩包,里面是一些系统分区镜像,提供给客户进行手动升级.恢复系统.需要提前将压 ...

  3. Devops(四):Docker 镜像管理

    参考 <Docker中上传镜像到docker hub中> <Docker 镜像管理> <通过容器提交镜像(docker commit)以及推送镜像(docker push ...

  4. postMan下使用xdebug

    增加 ?XDEBUG_SESSION_START=PHPSTORM 例: {{url}}/manage/getuserinfo?XDEBUG_SESSION_START=PHPSTORM

  5. 算法名称 Alias Method

    public class AliasMethod { /* The probability and alias tables. */ private int[] _alias; private dou ...

  6. C++之future和promise

    future和promise的作用是在不同线程之间传递数据.使用指针也可以完成数据的传递,但是指针非常危险,因为互斥量不能阻止指针的访问:而且指针的方式传递的数据是固定的,如果更改数据类型,那么还需要 ...

  7. sigaction和实时信号sigqueue

    sigaction函数sigaction函数的功能是用于改变进程接收到特定信号后的行为.int sigaction(int signum, const struct sigaction *act,st ...

  8. [LeetCode] 129. Sum Root to Leaf Numbers 求根到叶节点数字之和

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  9. [LeetCode] 150. Evaluate Reverse Polish Notation 计算逆波兰表达式

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  10. Java之使用IDE

    IDE是集成开发环境:Integrated Development Environment的缩写. 使用IDE的好处在于按,可以把编写代码.组织项目.编译.运行.调试等放到一个环境中运行,能极大地提高 ...