1
目前,我使用LibUSBDotNet來檢測何時插入USB。然而,這需要幾秒鐘安裝,所以目前,我運行這段代碼:在Linux的Mono上的USB Mount上
private void OnDeviceNotifyEvent(object sender, DeviceNotifyEventArgs e)
{
//Log.WriteDiagnostic(e.ToString());
Thread thread = new Thread(USBThreadStart);
thread.Start();
}
private void USBThreadStart()
{
Thread.Sleep(5000);
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
if (drive.Name.Contains("/SomeUsbName"))
Log.WriteDiagnostic("Usb Found.");
}
在此,我啓動等待(足夠多的安裝設備更多)5秒的線程,那麼通過所有驅動器循環訪問具有給定名稱的驅動器(我們在客戶的USB記憶棒上專有名稱)。我這樣做的原因是因爲DriveInfo.GetDrives()將所有USB記憶棒作爲固定類型返回,而不是可移動類型。
這有效,但它肯定不覺得最好的方式去做。有沒有更好的方法,使用Linux上的Mono C#來檢測何時安裝USB棒?