C++遍历磁盘驱动器的示例代码
#include#include typedefstructtagDRIVER { //(1)磁盘盘符 wchar_tdisk; //(2)磁盘总的大小 doubleall; //(3)磁盘可用空间 doublefree; //(4)磁盘类型(是光盘、硬盘、还是移动硬盘) inttype; }DRIVER; voidGetDrivers() { BOOLfResult; //定义磁盘消息结构体 DRIVERdir; //遍历磁盘 for(wchar_td='A';d<='Z';d++) { //磁盘消息结构体清0 memset(&dir,0,sizeof(DRIVER)); unsigned_int64i64FreeBytesToCaller; unsigned_int64i64TotalBytes; unsigned_int64i64FreeBytes; TCHARszTemp[3]={d,':','\0'}; //获取磁盘类型 UINTuType=GetDriveTypeW(szTemp); //DRIVE_UNKNOWN无法确定驱动器类型。 //DRIVE_NO_ROOT_DIR根路径无效;例如,指定路径上没有安装卷。 //DRIVE_REMOVABLE驱动器有可移动介质;例如,软盘驱动器,拇指驱动器或闪存卡读卡器。 //DRIVE_FIXED驱动器有固定的媒体;例如,硬盘驱动器或闪存驱动器。 //DRIVE_REMOTE该驱动器是远程(网络)驱动器。 //DRIVE_CDROM该驱动器是一个CD-ROM驱动器。 //DRIVE_RAMDISK驱动器是RAM磁盘。 switch(uType) { caseDRIVE_FIXED: { //硬盘是1 dir.type=1; break; } caseDRIVE_CDROM: { //光盘是2 dir.type=2; break; } caseDRIVE_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); } } intmain() { GetDrivers(); getchar(); return0; }
以上就是C++遍历磁盘驱动器的示例代码的详细内容,更多关于C++遍历磁盘驱动器的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。