码迷,mamicode.com
首页 > Windows程序 > 详细

windows下如何获取系统已存在的盘符

时间:2016-04-24 12:24:45      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:

在项目开发时,使用公司的SDK给系统分区,在windows2003的系统下分区后无法自动给新分区分配盘符,当然系统重启后可以分配盘符,但是我不希望它重启,所以我的想法是通过程序自动给新分区分配盘符。分配盘符准备使用diskpart命令中的assign letter方法,但是新盘符不能和已存在的盘符冲突,
那么问题来了,如何才能获取已存在的盘符,包括给CD/DVD 、U盘等分配的盘符?
#include <iostream>  
#include <windows.h>  
   
using namespace std;  
   
int main()  
{  
    char rootPath[10] = {0}, driveType[21] = {0};  
    UINT nType;  
   
    for(char a = ‘A‘; a <= ‘Z‘; a++)  
    {  
        sprintf(rootPath, "%c:\\", a);  
        nType = GetDriveType(rootPath);  
        if(nType != DRIVE_NO_ROOT_DIR)                  // DRIVE_NO_ROOT_DIR: 路径无效  
        {  
            switch(nType)  
            {  
                case DRIVE_FIXED:  
                    strcpy(driveType, "硬盘");  
                    break;  
                case DRIVE_REMOVABLE:  
                    strcpy(driveType, "移动硬盘");  
                    break;  
                case DRIVE_CDROM:  
                    strcpy(driveType, "光盘");  
                    break;  
                case DRIVE_RAMDISK:  
                    strcpy(driveType, "RAM盘");  
                    break;  
                case DRIVE_REMOTE:  
                    strcpy(driveType, "Remote(Network) drive");  
                    break;  
                case DRIVE_UNKNOWN:  
                default:  
                    strcpy(driveType, "未知盘");  
                    break;  
            }  
            cout<<rootPath<<"\t"<<driveType<<endl;  
        }  
    }  
   
    return 0;  
}


windows下如何获取系统已存在的盘符

标签:

原文地址:http://www.cnblogs.com/songy/p/5426535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!