热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

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

这篇文章主要介绍了C++遍历磁盘驱动器的示例代码,帮助大家更好的理解和使用c++,感兴趣的朋友可以了解下
#include 
#include 

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++遍历磁盘驱动器的资料请关注其它相关文章!


推荐阅读
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • 本文详细介绍了从Windows 7 升级到 Windows 10 的步骤和注意事项,帮助用户顺利完成系统升级。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 数字资产量化交易通过大数据分析,以客观的方式制定交易决策,有效减少人为的主观判断和情绪影响。本文介绍了几种常见的数字资产量化交易策略,包括搬砖套利和趋势交易,并探讨了量化交易软件的开发前景。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Dell Latitude 5290 2-in-1 平板电脑黑苹果体验评测
    本文基于notebookcheck的详细数据和个人实际使用体验,对Dell Latitude 5290 2-in-1平板电脑进行评测。评测内容包括外观设计、散热性能、基准测试、游戏表现和续航能力等方面,旨在为读者提供全面的参考。 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 如何开启笔记本电脑的摄像头
    本文将详细介绍如何在Windows 7系统中开启笔记本电脑的摄像头,包括通过视频软件和创建快捷方式的方法。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
author-avatar
怎么找个名字这么费劲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有