Как я могу прочитать "метку диска" или "имя Тома" in.NET?


Можете ли вы показать пример кода для чтения метки диска или имени Тома в .NET? я понимаю, что для этого требуется WMI, но я ненавижу "раскрывающийся список" в WMI, потому что это похоже на падение в строковый SQL-запрос в том смысле, что определенные объекты могут не существовать в определенных версиях ОС или пользователь может не иметь права запрашивать определенные данные. Я буду счастлив убедиться, что ошибаюсь насчет WMI ...

3 4

3 ответа:

WMI не требуется. Все метки томов будут получены следующим образом:

var labels = from drive in DriveInfo.GetDrives()
             select drive.VolumeLabel

Вызов DriveInfo.GetDrives для получения массива информации о диске. Тогда посмотрите на DriveInfo.VolumeLabel

Вы можете использовать системы.ИО.DriveInfo получить список дисков. Смотрите следующий пример:

Примечание: типы дисков CDRom не имеют имени Тома.

Using System.IO;
.
.
.
DriveInfo[] driveInfoList = DriveInfo.GetDrives();
foreach (DriveInfo drive in driveInfoList)
{
    if (drive.DriveType != DriveType.CDRom)
       textBox1.Text += String.Format("Name:{0} Volume:{1}\r\n", drive.Name, drive.VolumeLabel);
    else
       textBox1.Text += String.Format("Name:{0}\r\n", drive.
}