Получить список съемных носителей в 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();
}
Подведем итог:
- Добавьте элемент управления ComboBox в форму Windows (перетащите его на форму из панели инструментов)
- Запрос съемных дисков.
- Свяжите результаты с ComboBox.
Вы использовали WMI для этого, проверьте эту ссылку для получения информации и примеров.