Страницы

Поиск по вопросам

вторник, 6 ноября 2018 г.

C# Как получить букву только что подключённой флешки?

Копал в сторону DriveInfo, но сравнивать два массива — не слишком изящное решение.


Ответ

Можно использовать технологию WMI
Подключаете к проекту сборку System.Management.dll.
Пишете следующий код:
using System.Management;
var watcher = new ManagementEventWatcher(); var query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); watcher.Query = query; watcher.EventArrived += Watcher_EventArrived; watcher.Query = query; watcher.Start();
private static void Watcher_EventArrived(object sender, EventArrivedEventArgs e) { var driveName = e.NewEvent.Properties["DriveName"].Value.ToString(); Console.WriteLine(driveName); }
В событии получаем букву диска.
Объект ManagementEventWatcher является Disposable, поэтому крайне желательно после окончания работы с ним освободить ресурсы вызовом метода Dispose (или используйте using, если возможно).
Подробнее можно посмотреть здесь

Комментариев нет:

Отправить комментарий