GetLogicalDriveStrings()遍历卷和FindFirstVolume()查询驱动器名
一、GetLogicalDriveStrings()遍历卷#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#define BUFSIZE 1024
int main(){
CHAR szLogicalDriveStrings;//定义一个字符串
PCHAR szDrive;
ZeroMemory(szLogicalDriveStrings,BUFSIZE);//字符串清零
GetLogicalDriveStrings(BUFSIZE-1,szLogicalDriveStrings);//执行后所有数据都在szLogicalDriveStrings
//szLogicalDriveStrings的格式为C:\\0D:\\0E:\\0\0,printf遇到\0便停止读取,所以直接printf只能输出第一个字符串
//下面通过循环取出全部字符串
szDrive = (PCHAR)szLogicalDriveStrings;//取出szLogicalDriveStrings的指针
do
{
printf("%s\n",szDrive);//输出指针位置的字符串
szDrive+=(lstrlen(szDrive)+1);//每次循环指针向后增长,指向下一个字符
}while(*szDrive !='\x00');
system("pause");
return 0;
}
二、遍历设备名
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#define BUFSIZE 1024
int main(){
TCHAR buf;
HANDLE hvOL;
bool bFlag;
//FindNextVolume();
hvOL=FindFirstVolume(buf,BUFSIZE);
if(hvOL==INVALID_HANDLE_VALUE){
printf("%s\n","没有找到任何卷");//输出指针位置的字符串
return -1;
}
//输出
printf("%s\n",buf);//输出指针位置的字符串为设备名格式 \\?\Volume{869eafc0-a2b7-11ec-a2e2-806e6f6e6963}
while(FindNextVolume(hvOL,buf,BUFSIZE)){
printf("%s\n",buf);//输出指针位置的字符串为设备名格式 \\?\Volume{869eafc0-a2b7-11ec-a2e2-806e6f6e6963}
};
bFlag=FindVolumeClose(hvOL);//关闭句柄
system("pause");
return bFlag;
}
是啊~~~学海无崖!忠无止尽~~~~~~ 忽然覺得自己好秒小 > 眉毛能富贵花每年 真的是收教了谢谢 感受很多,有兴有急,有悲有喜,做为一名程序员,我们更应该以科学的态度认识一切,学习的道路上是没有捷径的,因为那所谓的捷径,将是你离轨的起点.嗯,大家努力吧! 谢谢你给了我一个好的起点 恩,很好。值得提倡。兄弟。有你的。你现在一个月的工资有多少呀??你现在的工作都做些什么呀? 真的不错,佩服佩服! 经典,也给我们清醒了一下!