[API学习]操作驱动器挂载点说明

来源:互联网 发布:经典算法 编辑:程序博客网 时间:2024/05/24 05:45

本例子中使用的是GetDriveTpye函数获得驱动器类型,然后做出判断,最后使用GetVolumeInformation和GetLastError判断是否有光盘!
运行时要注意:
1.jpg


程序如下:
/**************************************/
/*        www.youstar.org.ru
/* 头文件 */
#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;
}

原创粉丝点击