문제

최근 프로젝트의 경우 Windows의 Java에서 매핑 된 Samba 공유에서 파일 시스템 변경을 감지해야합니다. 생성, 업데이트 및 제거. 현재 파일 목록과 수정 된 타임 스탬프를 유지하는 폴더 폴링을 사용하여 이벤트를 찾습니다.

그러나 내 문제는이 폴더 폴링이 특정 시간 (예 : 10 초마다)에 폴더를 들여다 보면 인식하지 않고 두 개의 설문 조사간에 업데이트 된 파일을 두 번 업데이트 할 수 있다는 것입니다.

파일 이벤트가 해당 Mappep Samba 공유에서 Occour가 될 때마다 Java 내부의 Windows에서 이벤트를 얻을 수있는 방법이 있습니까?

감사!

도움이 되었습니까?

해결책

Java는 현재 IO API에 O/S의 파일 알림을 처리하기위한 것이 없습니다.

Java 7에는 새로운 IO API가 있습니다 JSR-203 그게 a 파일 API를 시청하십시오 그것은 네이티브를 사용할 것입니다 O/S 알림 또는 투표 파일 변경을 감지하기 위해 알림이 지원되지 않은 경우.

그 동안 누군가가 JNI를 통해 O/S 알림에 연결할 수있는 라이브러리를 구현했는지 확인할 수 있습니다. Intellij Idea는이 목적을 위해 기본 LIB를 사용한다고 생각합니다.

내가 찾은 Sourceforge를 찾고 있습니다 jfilenotify 그러나 나는 그것을 사용한 적이 없습니다.

또는 당신은 할 수 있습니다 샘플링 주파수를 늘리십시오 (그러나 이것은 파일 시스템을 망치기 시작하거나 다음을 추가하여 파일이 작성되는 방식을 변경합니다. 버전 번호 파일 이름/폴더로 무언가가 언제 변경되었는지 쉽게 알 수 있습니다.

다른 팁

에 따르면 이 포럼 항목 TeamDev jniwrapper 내가 원하는 것처럼 이것을 할 수 있습니다. 방금 사본을 구입했습니다. 고마워 그리고

Greetz, Ghad

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top