通过VolumeLabel从USB获取驱动器号

时间:2015-04-17 19:34:50

标签: c#

我认为这很简单。我需要通往USB的路径,但由于我不知道它将分配哪个字母,我想我只是使用不会改变的音量标签。这是我的简单代码:

 var alldrives = DriveInfo.GetDrives();
 string destd = alldrives.Where(x => x.VolumeLabel.Equals("UB64")).First().Name;

即使插入了usb,也会引发Io异常(设备不可用)。有人可以告诉我为什么会这样吗?

在我看来,这与完整列表不同,因为我已经有了一种地址,只需要转换为完整路径,而不是从无从头开始。

1 个答案:

答案 0 :(得分:0)

克里斯指出了正确的答案。如果它在这里帮助其他任何人它是:

var alldrives = DriveInfo.GetDrives();
string destd="";
foreach (var drvs in alldrives)
{
    try
    {
          if (drvs.VolumeLabel.Equals("UB64"))
              destd = drvs.Name;
              break;
     }
     catch
     {
        continue;
     }
}

即。它不是导致错误的USB ......