4.2.3 判断光驱中是否有光盘

#include

#include

#include

#define BUFSIZE 512

int main(int argc, PCHAR argv[]){

CHAR szFileSystemNameBuffer[BUFSIZE];//存储文件系统类别名

DWORD dwLastError;//保存错误编号

DWORD dwFileSystemFlags;//文件系统标志

if (argc != 2){

printf("请输入驱动器的根路径,如: D:\\\n");

return (-1);

}

if (GetDriveType(argv[1]) != DRIVE_CDROM){

printf("驱动器 %s 不是 CD/DVD\n", argv[1]);

return (-1);

}

//获得卷信息 这里只获取了文件系统名称,如 NTFS

if (!GetVolumeInformation(

argv[1],//in 卷的根目录的字符串的指针

NULL,//out 接收指定卷名称的缓冲区的指针

0,//in 缓冲区的长度,如果上一参数为空,则忽略此参数

NULL,//out 指向接收卷序号的变量的指针,如果不需要序列号,此参数可以为NULL

NULL,//out 用来接收指定文件系统支持的文件名组件的最大长度,值大概是 255

&dwFileSystemFlags,//out 标志的变量的指针

szFileSystemNameBuffer,//out 文件系统的名称的缓冲区的指针

BUFSIZE//文件系统名称缓冲区的长度,如果上一参数为空,则忽略此参数

)){

dwLastError = GetLastError();

if (dwLastError == 21){

printf("设备未就绪,请放入光盘!\n");

return 0;

} else{

printf("获取卷信息错误: %d\n", dwLastError);

return 0;

}

}

printf("光盘已经放入,文件系统类别: %s\n", szFileSystemNameBuffer);

return 0;

}

你可能感兴趣的:(4.2.3 判断光驱中是否有光盘)