Как получить букву диска из полного названия диска - PullRequest
2 голосов
/ 28 августа 2011

Как можно получить букву диска (например, F: \) из известного полного имени (если оно присутствует) диска (например, WORKMEMORYSTICK) с использованием C # под Windows?

Даже наоборотбудет началом.

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

Вы можете прокрутить все диски и проверить свойства Name и VolumeLabel объекта DriveInfo .

См. Этот вопрос для примеров кода (используется для получения буквы USB-диска, но вы можетелегко адаптировать его):

Как найти букву USB-диска?

Извините, я не могу предоставить вам некоторый код, но я сейчас на Mac:)

2 голосов
/ 28 августа 2011

Класс DriveInfo предоставляет метод для получения всех доступных дисков (GetDrives), вы можете перечислить их в соответствии с заданной строкой. Что-то вроде следующего должно помочь вам туда добраться:

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

Как упомянул Абатищев, и изначально не уточнялся из-за требований времени моих детей, существует потенциальная проблема в том, что вы собираетесь сопоставить только диск first с таким ярлыком, поэтому вам придется учитывать это в своей логике, если ваша система этого требует (хотя определение того, какой из двух дисков является желаемым , основанный только на неуникальной строке, не лучше, чем предположение, или, как я упоминаю ниже, спрашивая пользователя (если это ввод), какой он имел в виду.)

...