2012-07-14 3 views
3

FileSystem 와쳐를 만들었으며 2 개의 이벤트를 등록했습니다. 하나는 창조를위한 것이며 다른 하나는 변화를위한 것입니다.C# File System Watcher 및 FIleStream Writer

FileSystemWatcher fswInbound = new FileSystemWatcher(); 
fswInbound.Path = "path to directory"; 
fswInbound.EnableRaisingEvents = true; 
fswInbound.InternalBufferSize = 12288; 
fswInbound.Created += new FileSystemEventHandler(program.FileSystemWatcher_Created); 
fswInbound.Changed += new FileSystemEventHandler(program.FileSystemWatcher_Created); 

동일한 프로그램보다 파일을 동적으로 만들고 FileSystem Watcher가 듣고있는 폴더에 쓰려고합니다.

using (StreamWriter outfile = new StreamWriter(filename)) 
{ 
     outfile.Write("Some really long string"); 
} 

새 파일을 만든 후. 2 개의 이벤트가 시작됩니다. 하나는 변화와 창조를위한 것입니다. 나는 단지 파일 생성 이벤트가 발생하기를 원한다. 처음으로 파일을 만들 때 파일 변경 이벤트를 피하는 방법은 무엇입니까?

답변

1

이것은 디자인에 의한 것입니다. MSDN이 문제를 해결하려면 사용자가 가지고있는 공통 이벤트 처리기가 있어야합니다. 그런 다음 을 확인하여 파일 생성 또는 변경을 위해 ChangeType을 확인하십시오. 위의 링크에서

:

OnCreated 이벤트가 즉시 파일이 생성 될 때 발생

. 파일을 감시 디렉토리로 복사하거나 전송하는 경우 OnCreated 이벤트가 즉시 발생하고 하나 이상의 OnChanged 이벤트가 발생합니다.