如何从驱动器的全名获取驱动器号

时间:2011-08-28 17:55:40

标签: c# .net windows fileinfo drive-letter

如何在Windows下使用C#从驱动器(例如WORKMEMORYSTICK)的已知全名(如果存在)中获取驱动器号(例如F:\)?

即使反过来也是一个开始。

2 个答案:

答案 0 :(得分:2)

DriveInfo类公开了获取所有可用驱动器(GetDrives)的方法,您可以将这些匹配给您的给定字符串。像下面这样的东西应该有助于你到达那里:

DirectoryInfo root;
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
    if (drive.VolumeLabel == label)
    {
        root = drive.RootDirectory;
        break;
    }
}

如abatishchev所述,由于我孩子的时间要求,最初没有详细说明,因此您可能只会匹配具有该标签的 first 驱动器因此,如果您的系统需要它,您需要在逻辑中考虑到这一点(但是,根据非唯一字符串确定两个驱动器中的哪一个 所需驱动器并不比一个更好猜测,或者正如我在下面提到的那样,询问用户(如果这是输入的)他们的意思。)

答案 1 :(得分:2)

您可以循环浏览所有驱动器并检查名称和VolumeLabel properties of DriveInfo object

请参阅此问题以获取代码示例(用于获取USB驱动器号,但您可以轻松地对其进行调整):

How to find USB drive letter?

抱歉,我无法为您提供一些代码,但我现在正在使用Mac:)