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