MFC  怎么检测一个本地磁盘是移动硬盘还是电脑自带的磁盘

解决方案 »

  1.   


    void ListAllDisks()
    {
    TCHAR szDrives[256] = {0};
    DWORD dwNumberOfChars = ::GetLogicalDriveStrings(256, szDrives);
    for (DWORD i = 0; i < dwNumberOfChars;)
    {
    _tprintf(_T("%c "), *(szDrives+i));
    UINT driveType = ::GetDriveType(szDrives+i);
    switch (driveType)
    {
    case DRIVE_NO_ROOT_DIR:
    _tprintf(_T("no root dir"));break;
    case DRIVE_REMOVABLE:
    _tprintf(_T("removable media"));break;
    case DRIVE_FIXED:
    _tprintf(_T("fixed hard drive"));break;
    case DRIVE_REMOTE:
    _tprintf(_T("remote drive"));break;
    case DRIVE_CDROM:
    _tprintf(_T("cdrom"));break;
    case DRIVE_RAMDISK:
    _tprintf(_T("ramdisk"));break;
    case DRIVE_UNKNOWN:
    default:
    _tprintf(_T("unknown type"));break;
    }
    _tprintf(_T("\n"));
    i += wcslen(szDrives+i) +1;
    }
    }
    不知道移动硬盘会认出什么类型,你试试吧