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棒?