2016-08-18 31 views
1

現在、私はLibUSBDotNetを使ってUSBが挿入されたことを検出しています。そして、この中USBマウントLinux上でモノラル

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

私はそれを行うライブラリを知らない(と私はあなたがGoogleを試したと思う)。私はあなたがそのようなライブラリを実装することを提供することができます。あなたは見てくださいhereする必要があります。この概念を使用してライブラリを実装することができます。たとえば、パイプを介して通知を受け取るサービスを作成します。

関連する問題