博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 获取磁盘盘符以及剩余空间
阅读量:2243 次
发布时间:2019-05-09

本文共 1945 字,大约阅读时间需要 6 分钟。

void test2(){
DWORD dwLen = GetLogicalDriveStrings(0, NULL); //获取系统字符串长度. char * pszDriver = new char[dwLen]; //构建一个相应长度的数组. GetLogicalDriveStrings(dwLen, pszDriver); //获取盘符字符串. vector
v; while (*pszDriver != '\0') {
cout << pszDriver << " ---- " << endl; v.push_back(pszDriver); pszDriver += strlen(pszDriver) + 1; //定位到下一个字符串.加一是为了跳过'\0'字符串. } int DType; int si = 0; BOOL fResult; unsigned _int64 i64FreeBytesToCaller; unsigned _int64 i64TotalBytes; unsigned _int64 i64FreeBytes; for (int i = 0; i < dwLen / 4; ++i) //为了显示每个驱动器的状态,则通过循环输出实现,由于DStr内部保存的数据是A:\NULLB:\NULLC:\NULL,这样的信息,所以DSLength/4可以获得具体大循环范围 {
DType = GetDriveType(v[i].c_str()); //GetDriveType函数,可以获取驱动器类型,参数为驱动器的根目录 if (DType == DRIVE_FIXED) {
cout << "硬盘"; } else if (DType == DRIVE_CDROM) {
cout << "光驱"; } else if (DType == DRIVE_REMOVABLE) {
cout << "可移动式磁盘"; } else if (DType == DRIVE_REMOTE) {
cout << "网络磁盘"; } else if (DType == DRIVE_RAMDISK) {
cout << "虚拟RAM磁盘"; } else if (DType == DRIVE_UNKNOWN) {
cout << "未知设备"; } fResult = GetDiskFreeSpaceEx( v[i].c_str(), (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes); //GetDiskFreeSpaceEx函数,可以获取驱动器磁盘的空间状态,函数返回的是个BOOL类型数据 if (fResult)//通过返回的BOOL数据判断驱动器是否在工作状态 {
cout << " totalspace:" << (float)i64TotalBytes / 1024 / 1024 << " MB";//磁盘总容量 cout << " freespace:" << (float)i64FreeBytesToCaller / 1024 / 1024 << " MB";//磁盘剩余空间 } else {
cout << " 设备未准备好"; } cout << endl; si += 4; }}

转载地址:http://vcwdb.baihongyu.com/

你可能感兴趣的文章
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>