2016-08-18 70 views
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棒?

回答

0

我不知道這樣做的圖書館(我猜你試過谷歌)。我可以提供你實施這樣的圖書館。你應該看看here。你可以用這個概念來實現這個庫。例如,編寫一個服務,例如通過管道接收通知。