2013-11-28 7 views
1

jnotify를 사용하여 특정 디렉토리에서 새 파일을 만들거나 복사 할 때 이벤트를 가져옵니다. 파일을 디렉터리로 복사 할 때이 파일을 매개 변수로 사용하여 도구를 실행하려고합니다. 문제 : 파일 크기가 크고 디렉토리에 즉시 복사되지 않을 때이 파일을 계속 복사하기 때문에이 파일로 도구를 시작할 수 없습니다.파일이 완전히 생성/복사되기 전에 jnotify 이벤트가 발생합니다.

이 문제를 해결할 수있는 방법이 있습니까? 파일이 "준비"되어 있는지 확인하는 방법이 있습니까?

답변

0

JNotify가 파일 시스템 이벤트에 연결하고 OS에서보고 한 내용을 얻습니다. 작업을 활성화하기 전에 타이머를 사용하여 해당 파일에 대해 두 번째 또는 두 번 활동하지 않을 때까지 기다리는 것이 좋습니다.

+0

그렇게 볼 수있는 방법이 없습니다, (리눅스/유닉스) lsof 명령을 사용하여 사용 열려 있는지 확인합니다 또한 준비된 파일에 대한 알림? 나는 폴링을 피하려고 노력하고 있지만 불가능하다면 폴링 할 것입니다 ... – Fulley

+0

아니요, OS 레벨 (이는 JNotify가 사용하는 것입니다)에서 준비된 파일과 같은 개념은 없습니다. 내가 풀링을 제안하지 않고 오히려 JNotify에서 마지막 쓰기 이벤트를 기다리는 중입니다. 여기서 마지막 이벤트는 두 번째 (예를 들어) 파일의 추가 이벤트가없는 이벤트로 정의됩니다. –

0

파일을 사용하면 진행중인 파일을 처리 할 수 ​​있도록 (파일이 사용)