2012-02-16 3 views
3

java.io.File이 현재 어떤 프로세스에서 다른 프로세스에서 열려 있는지 테스트 할 수 있습니까? Java 7을 사용하고 있으며 대상 플랫폼은 Linux/Windows/Mac입니다.파일이 Java로 열려 있는지 테스트하는 방법은 무엇입니까?

+2

[this] (http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open) – DonCallisto

+0

당신이 * 왜 * 필요하다고 말하면 도움이 될 수 있습니다. 이것을하기 위해. 귀하의 질문 컨텍스트를 언급함으로써 전반적인 문제에 대한 더 나은 해결책을 얻을 수 있습니다 ... – thkala

+1

- 이미 WatchService API를 사용하고 있습니다. 그러나 수정, 삭제 및 생성을위한 이벤트 만 트리거합니다. 파일이 열려 있는지 확인하기 위해 이들을 결합 할 수있는 가능성은 없습니다. 저는 현재 분산 문서 관리 도구를 만들고 있습니다. 목표는 한 사용자가 현재 편집하고있는 파일을 잠그는 것인데, 같은 파일을 공유하는 다른 사용자 (MySQL을 통해)가 같은 시간에 동일한 파일을 편집 할 수 없도록합니다 ... FileLock은 플랫폼 독립적이지 않습니다 ... – salocinx

답변

1

다른 플랫폼에서 안정적으로 작동하는 Java에 대한 쉬운 방법은 없습니다. 수행하려는 작업에 따라 대부분의 파일 시스템에서 대부분의 경우에 대해 작동하는 일련의 try/catch 문을 함께 패치 할 수는 있지만 다음에 발생하는 상황이 발생하면 완전히 실패 할 수는 없습니다. 그것을 버리십시오.

이 경로를 끝내려면 의심스러운 부분이있을 경우 빠르게 실패하고 실제로 파일이 열려 있지 않다고 생각하는 상황에 빠지지 않도록해야합니다. 내 조언은 당신이이 수표를해야하는 것 주위에서 가능할 수있는 방법이 있는지 확인하는 것입니다.

+0

감사합니다. mandaleeka. 나는 이것을 옵션으로 생각할 것이다 :-( – salocinx

관련 문제