2016-08-18 3 views
1

현재 USB를 삽입하면 LibUSBDotNet을 사용하여 감지합니다. 다음이에서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

나는 그것을하는 도서관을 모른다 (그리고 나는 당신이 구글을 시도했다고 생각한다). 나는 그러한 도서관을 구현할 것을 제안 할 수있다. 너는 here을보아야한다. 이 개념을 사용하여 라이브러리를 구현할 수 있습니다. 예를 들어 파이프를 통해 알림을받는 서비스를 작성하십시오.

관련 문제