디렉토리에 새 파일이 있는지 모니터링하고 디렉토리에있는 새 파일을 처리하는 Java 응용 프로그램이 있습니다. 응용 프로그램을 linux 및 windows env에서 실행해야합니다. 문제는 리눅스에서 사용자가 디렉토리의 파일을 수동으로 복사 할 때 응용 프로그램이 파일을 완전히 선택하기 전에 선택하여을 디렉토리에 복사합니다. 은 다양한 방법을 사용하여 파일을 잠그려고했으나 응용 프로그램은 파일이 Linux 시스템에 의해 여전히 복사되고있는 경우에도 파일에 대한 잠금을 획득 할 수 있습니다. 나는 또한 lsof 명령을 사용하여 파일을 검사하는 것을 고려해 왔지만, 이것은 리눅스에서만 발생하므로이를 피하려고합니다.Linux + Java + Windows : 파일 복사 완료 여부 확인
누군가는 응용 프로그램에 의해 선택되는 불완전한 파일을 방지 할 수있는 방법을 제안시겠습니까? 미리 감사드립니다.
이 문제에 대한 한 가지 방법은 항상 두 개의 파일을 대상 폴더에 복사하는 것입니다. 먼저 실제 데이터 파일을 대상 폴더에 복사하고 해당 파일 "fileName.dat"을 호출 할 수 있습니다. 이 파일 복사가 성공적으로 완료되면 대상 폴더 내에 "fileName.done"이라는 더미 파일을 만듭니다. 응용 프로그램은 ".done"으로 끝나는 파일을 감지하고 읽을 준비가 된 "fileName.dat"을 인식합니다. – Hector
디렉토리에서 누가 파일을 복사하는지 제어 할 수 있다면 불행히도 파일을 복사 할 사람과 파일을 어떻게 안내하는지 모릅니다. – Prashant
크기가 5 분 정도로 안정 될 때까지 또는 적절한 것으로 판단 될 때까지 사용하지 마십시오. – EJP