現在、私は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スティックがマウントされたことを検出する方法がありますか?