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

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

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

спасибо

3 ответов


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

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.Управление сборка если вы собираетесь использовать 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 для этого, проверьте это ссылке for для информации и примеров.