Как можно получить букву диска (например, F: \) из известного полного имени (если оно присутствует) диска (например, WORKMEMORYSTICK) с помощью C # под Windows?
Для начала было бы даже наоборот.
Как можно получить букву диска (например, F: \) из известного полного имени (если оно присутствует) диска (например, WORKMEMORYSTICK) с помощью C # под Windows?
Для начала было бы даже наоборот.
Класс DriveInfo
предоставляет метод для получения всех доступных дисков (GetDrives
) вы можете перечислить эти соответствовать вашей данной строке. Что-то вроде следующего должно помочь вам в этом:
DirectoryInfo root;
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
if (drive.VolumeLabel == label)
{
root = drive.RootDirectory;
break;
}
}
Как упоминал Абатищев, и изначально не уточнялся из-за требований моих детей ко времени, существует потенциальная проблема в том, что вы собираетесь сопоставить только первый диск с этой меткой, поэтому вы необходимо будет учесть это в вашей логике, если это требуется вашей системе (хотя определение того, какой из двух дисков является желаемым диском, основываясь только на неуникальной строке, не лучше, чем предположение, или как я упоминаю ниже, спрашивая пользователя (если это ввод), что они имели в виду.)
GetPathRoot()
. OP говорит о поиске буквы диска, соответствующей метке тома.
- person cdhowie; 28.08.2011
Вы можете циклически просмотреть все диски и проверить свойства Name и VolumeLabel объекта DriveInfo а>.
См. Этот вопрос для примеров кода (используется для получения буквы USB-накопителя, но вы можете легко его адаптировать):
Как найти букву USB-накопителя?
Извините, я не могу предоставить вам код, но сейчас я использую Mac :)