получить список съемных носителей в c # - PullRequest
8 голосов
/ 30 августа 2011

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

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

Спасибо

Ответы [ 2 ]

12 голосов
/ 30 августа 2011

Вы можете использовать Тип 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.
1 голос
/ 30 августа 2011

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

...