得到一个设备名称的路径,比如\Device\HarddiskVolume1\1.txt,怎么把它装换为C:\1.txt?有什么用户态或内核态的API可以使用么?

解决方案 »

  1.   

    HarddiskVolume1一般对应的就是C盘吧
      

  2.   


    TCHAR szPath[MAX_PATH] = {0};
    TCHAR szDisk[3] = {0};
    for(TCHAR ch = _T('A'); ch <= _T('Z'); ch++)
    {
    _stprintf(szDisk, _T("%c:"), ch);
    if(QueryDosDevice(szDisk, szPath, MAX_PATH))
    {
    AfxMessageBox(szPath);
    }
    }
      

  3.   

    是啊。但怎么转换啊?难道每次都要判断是不是harddiskvolumeXX,然后换为X:?这样太不灵活了?有没有API可用?
      

  4.   

    RtlVolumeDeviceToDosName参数是设备对象啊,只有设备名,应该怎么用?