문제

파일을 작성/삭제하고 싶지만 다른 프로그램에서 파일을 사용하는 경우 때로는 충돌이 발생합니다. 다른 프로세스에서 파일이 열렸는지 여부를 확인하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

문제는 독점 액세스를 얻고 파일을 열 수 있는지 확인하기 위해 확인하는 시간 사이에 다른 것이 파일에 독점적으로 액세스 할 수 있다는 것입니다.

파일에서 독점 잠금을 얻을 수 있는지 확인하는 유일한 바보 증거 방법은 파일에서 독점 잠금을 얻는 것입니다.

그렇지 않다면, 당신은 예외를 포착하고

  • 다른 일을하러 가십시오
  • 잠시 기다렸다가 다시 시도하십시오

허가보다 용서를 구하는 것이 더 나은 삶의 상황 중 하나입니다. :)

다른 팁

Vista 및 Up의 파일 잠금의 원점을 얻는 새로운 방법이 있습니다.http://www.remkoweijnen.nl/blog/2011/01/03/cannot-access-files-but-need-the-origin/

usermode : 잠긴 파일에 쓰는 가장 좋은 방법은 사용자에게 다른 프로세스에서 닫도록 요청하는 것입니다. 배치 프로세스에서는 그러한 파일을 무시하고 문제를 기록해야합니다. 다른 프로세스의 이름을 제공하는 것은 사용자를위한 솔루션을 찾는 매우 좋은 방법입니다.

어떤 프로그래밍 언어가 파일에 쓸 수 있는지 확인하고 싶은지 확실하지 않습니다. 자바에서 java.io.file.canwrite () 당신을 위해 일을 할 수 있습니다.

일반적인:

유닉스와 같은 OS에서는 사용할 수 있습니다 LSOF 명령.

파일에 대한 핸들이 어떤 프로그램을 보유하고 있는지 확인하려면 프로세스 모니터 (Microsoft에서 다운로드).

이 도구에는 명령 줄 인터페이스가 있으므로 언어의 스크립팅 인터페이스를 사용할 수 있습니다 (예 : java.lang.Process) 도구를 실행하고 유용한 오류 메시지를 표시합니다.

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