Получить список съемных носителей в C#

Привет мне нужно, чтобы обнаружить все съемные носители в выпадающем меню в C#

Любая помощь будет оценена

Спасибо

2 ответа

Решение

Вы можете использовать тип DriveInfo, чтобы получить список дисков. Вам необходимо проверить свойство DriveType (enum)

var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
    if (drive.DriveType == DriveType.Removable)
    {
        Console.WriteLine(drive.Name);
    }
}

Вы также можете использовать LINQ-to-Objects для запроса дисков:

var drives = from drive in DriveInfo.GetDrives()
             where drive.DriveType == DriveType.Removable
             select drive;

foreach(var drive in drives)
{
    Console.WriteLine(drive.Name);
}

Подобно упомянутому @TheCodeKing, вы также можете использовать WMI для запроса информации о диске.

Например, вы можете запросить USB-накопители следующим образом:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();

Добавьте ссылку на сборку System.Management, если вы собираетесь использовать WMI.

Если вы хотите заполнить ComboBox в приложении Windows Forms этими данными, вам необходимо привязать результаты к элементу управления ComboBox.

Например:

private void Form1_Load(object sender, EventArgs e)
{
    var drives = from drive in DriveInfo.GetDrives()
                 where drive.DriveType == DriveType.Removable
                 select drive;

    comboBox1.DataSource = drives.ToList();
}

Подведем итог:

  1. Добавьте элемент управления ComboBox в форму Windows (перетащите его на форму из панели инструментов)
  2. Запрос съемных дисков.
  3. Свяжите результаты с ComboBox.

Вы использовали WMI для этого, проверьте эту ссылку для получения информации и примеров.

Другие вопросы по тегам