GetDriverType不能识别移动硬盘,它认为是固定设备。如何知道它是移动硬盘。

解决方案 »

  1.   

    char  szDrives[128];
    char* pDrive; if ( !GetLogicalDriveStrings( sizeof(szDrives), szDrives ) )
    {
    m_strError = "Error Getting Logical DriveStrings!";
    return FALSE;
    } pDrive = szDrives;
    while( *pDrive )
    {
    SHFILEINFO shinfo;
    SHGetFileInfo( pDrive, NULL, 
       &shinfo, 
       sizeof(shinfo), 
       SHGFI_DISPLAYNAME | SHGFI_ICON | SHGFI_SMALLICON);CString strDiskName=shfInfo.szDisplayName;
    if(strDiskName.Mid(5)=="可移动磁盘")
    {
    ...
    break;
    }
    pDrive += strlen( pDrive ) + 1;
    }
      

  2.   

    不好意思,更正以下:
    if(strDiskName.Mid(0,5)=="可移动磁盘")
    {
    ...
    break;
    }
      

  3.   

    好象应该是:
    if(strDiskName.Mid(0,10)=="可移动磁盘")
    {
    ...
    break;
    }
      

  4.   

    kmcyz() 的方法是可行的,不过netsbull(网牛)的置疑也是有理的。
    我做的东西要支持多种语言,如果在英文操作系统下怎么办?