FileSystem Watcher를 사용하여 File creation (Copied) 이벤트에 대한 폴더를 모니터링하고 있습니다. 이미지 파일 만 처리하도록 프로그램을 원합니다. 예외가FileSystem Watcher- 복사 한 파일이 이미지인지 확인
private static void watcher_FileCreated(object sender, FileSystemEventArgs e)
{
try
{
using (Bitmap test = new Bitmap(Bitmap.FromFile(e.FullPath)))
{
mytoprocesslist.add(e.FullPath);
}
//do my processing with image
Console.WriteLine(e.FullPath);
}
catch (Exception error)
{
Console.WriteLine("File Error");
}
}
이 나는 사건이 있었기 때문에 생기는 일이라고 생각 유효한 이미지 파일이 복사도 Out of Memory exception
을 던져 던져 경우
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Filter = "*.*";
watcher.Created += new FileSystemEventHandler(watcher_FileCreated);
watcher.Path = path;
그래서 나는 파일을 비트 맵을 생성하고 피하려고 파일이 완전히 복사되기 전에 발생합니다. 이 문제를 어떻게 극복 할 수 있습니까? 나는 할 일 목록에 유효한 이미지 파일을 추가하기를 원하며 나중에이 이미지들을 하나씩 처리 할 것입니다.
위 코드에는 메모리가 부족한 행이없는 것 같습니다. 대부분의 경우 "// 이미지 처리로 처리"가이 오류를 던지고 있습니다. 파일이 아직 완전히 복사되지 않았다면 1 초의 대기 시간을 추가 할 수 있습니다. – puneet
@puneet'using (비트 맵 테스트 = 새 비트 맵 (Bitmap.FromFile (e.FullPath))) ' – techno
'watcher.NotifyFilter = NotifyFilters.FileName;을 설정하고 이미지를로드하기 위해'Image.FromFile (e.FullPath); 그리고 그것은 예외없이 작동합니다. –