此电脑 -> 管理 -> 磁盘管理 -> 每个盘是一个卷 -> 也可以叫做一个逻辑驱动器
GetLogicalDriveStrings函数
是将所有盘的名称都存在一个字符串中 每个盘以 \0 为分隔
我们要写代码去判断何时结束读取
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#define BUFSIZE 1024
int main()
{
CHAR szLogicalDriveStrings[BUFSIZE];
ZeroMemory(szLogicalDriveStrings, BUFSIZE);//这也是一个API函数, 清空这个字符串
GetLogicalDriveStrings(BUFSIZE - 1, szLogicalDriveStrings);
//printf("%s\n", szLogicalDriveStrings);
PCHAR psz;
psz = (PCHAR)szLogicalDriveStrings;
do{
printf("%s\n", psz);
psz += (strlen(psz) + 1);
} while ((*psz) != '\0');
system("pause");
}
这种名称叫做设备名 每个盘都有 这个格式很特殊 这是个完整的名称 是唯一的 特殊格式的。。。
上面那个用字幕表示的,叫做逻辑驱动器名 是简单的。。。
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#define BUFSIZE 1024
int main()
{
TCHAR buf[BUFSIZE];
HANDLE hVol;
BOOL bFlag;
hVol = FindFirstVolume(buf, BUFSIZE);
if (hVol == INVALID_HANDLE_VALUE)
{
printf("No Volumes Found ! \n");
return -1;
}
while (FindNextVolume(hVol, buf, BUFSIZE))
{
printf("%s\n", buf);
}
bFlag = FindVolumeClose(hVol);
system("pause");
return bFlag;
}