검사 장치에서 TIF 파일을받는 디렉토리를 모니터링하는 FileSystemWatcher가 있습니다.TIFF 파일 검사가 완료되었는지 확인하십시오.
검색 프로세스가 완료되었는지 확인한 다음 완전히 스캔 한 파일을 처리해야합니다. 그렇지 않으면 프로그램이 불완전한 파일을 처리합니다.
- Scanner creates the file
- FileSystemWatcher detects the file, but its in use
- Scanner reads the first page to the file
- Scanner releases the file
- My code leaves the while(IsFileLocked(path))
- My code reads the incomplete file (problem)
- Scanner adds more pages to the file
은의이 스캐너가 "읽기 OK"할 때, 파일 것, 다음, 100 페이지를 스캔되어 있다고 가정 해 봅시다 :
private void OnFileCreated(...)
{
while(IsFileLocked(path))
Thread.Sleep(time);
// OK to read
}
이 일어나고있는 것입니다 :
나는 뭔가처럼이 불완전하다 (99 페이지 남음).
따라서 파일이 완전한지 여부를 확인해야합니다. 스캐너가 동일한 TIF 검사를 유휴 상태로 만들 수 있기 때문에 파일이 수정되었는지 잠시 기다려야하지만이 시간 범위는 최대 시간이 될 수 있습니다. 다른 해결책은 파일이 완료되지 않았 음을 나타내는 TIF 파일의 플래그를 검사하는 것입니다 (이 파일을 찾았지만 아무 것도 발견하지 못했습니다).
: 여기에 묻기 전에 TIFF format documentation을 읽었습니다. 흥미로운 PageNumber 속성을 발견했지만 내 문제를 해결할 수 있을지 모르겠다.
은'FileInUse' 기능은 무엇입니까? – vlad
스캐너를 쿼리하여 스캔이 완료된 시간을 확인할 수 있습니까? – UnhandledExcepSean
어떤 프로그램이 파일을 읽는지 확인합니다. 간단하게 유지하기 위해이 방법을 사용합니다. 그러나 다음과 비슷한 것을합니다 : http://stackoverflow.com/questions/876473/is-there-a-way-to-check -if-a-file-in-use 이 방법의 더 좋은 이름은 IsFileLocked입니다. –