我们在进行Windows编程的时候经常需要进行操作光驱,请见代码实现与注释讲解。
- /* 头文件 */
- #include <windows.h>
- #include <stdio.h>
- #include <tchar.h>
- /* 预定义 */
- #define BUFSIZE 512
- /* ************************************
- * int main( int argc, PCHAR argv[] )
- * 功能 应用程序主函数,根据输入的驱动器
- * 根路径参数判断是否为光驱,是否放
- * 入光盘。
- * 参数 驱动器根路径,比如“D:\”。
- **************************************/
- int main( int argc, PCHAR argv[] )
- {
- //存储文件系统类别名
- CHAR szFileSystemNameBuffer[BUFSIZE];
- DWORD dwLastError;
- DWORD dwFileSystemFlags;
- //判断是否输入运行时参数
- if( argc != 2 )
- {
- printf("请输入驱动器的根路径,比如: \"D:\\\"\n");
- return( -1 );
- }
- //判断输入的驱动器是否为CD\DVD ROM
- if(GetDriveType(argv[1])!=DRIVE_CDROM)
- {
- printf("驱动器 %s 不是 CD/DVD ROM。\n",argv[1]);
- return( -1 );
- }
- //获取卷信息
- if (!GetVolumeInformation(
- argv[1], NULL, 0,
- NULL,NULL,
- &dwFileSystemFlags,
- szFileSystemNameBuffer,
- BUFSIZE
- ))
- {
- dwLastError = GetLastError();
- if(dwLastError == 21)
- {
- printf("设备未就绪,请放入光盘!\n");
- return 0;
- }
- else
- {
- printf("GetVolumeInformation 错误 %d\n",dwLastError);
- return 0;
- }
- }
- printf ("光盘已经放入,文件系统类别 %s。\n",szFileSystemNameBuffer);
- return 0;
- }

1万+

被折叠的 条评论
为什么被折叠?



