FileSystemWatcher
클래스를 사용하여 변경 내용을 디렉터리에서 모니터링하는 프로그램이 있습니다. 다른 클라이언트가 StreamWriter
을 사용하여이 디렉토리에 쓰고 있습니다. "때때로", 파일 시스템 워처 생성 이벤트에서 파일에 액세스하려고하면 오류가 발생합니다.StreamWriter 및 FileSystemWatcher 함께 사용
자주 발생하지 않으므로 디버깅하기가 매우 어렵습니다. 클라이언트가 Using
블록에 동봉하여 스트림을 제대로 닫고 있습니다. "이 응용 프로그램은 다른 프로세스에서 사용중인 파일을 사용할 수 없습니다"라는 줄에 오류가 있습니다. 필자는 클라이언트가 동일한 코드를 사용하여 디렉토리에 파일을 쓸 때 왜 오류가 산발적으로 나타나는지 이해하지 못합니다. 때때로 대부분의 시간 동안 수동 복사가 오류를 throw합니다.
해당 디렉토리는 로컬 네트워크 디렉토리가 아닙니다. 제발 제안 해주세요. 응용 프로그램 이벤트 코드
public void Temp()
{
FileSystemWatcher fs = new FileSystemWatcher();
fs.Path = GlobalStatics.PathWorkOrders;
fs.IncludeSubdirectories = false;
fs.Filter = "*.wo";
fs.EnableRaisingEvents = true;
fs.Created += CreatedEvent;
}
public void CreatedEvent(object sender, System.IO.FileSystemEventArgs e)
{
string guidStr = Path.GetFileNameWithoutExtension(e.FullPath);
using (StreamReader sr = new StreamReader(e.FullPath))
{
//Processing
sr.Close();
}
}
코드를 표시 할 수 있습니다. 아마도 for 루프에서 수행 중이지만 코드를 보지 못한 채로 말할 수없는 경우 StreamWriter의 인스턴스를 만들어야합니다. – MethodMan
코드가 있습니다. – swiftgp
이것은입니다. 피할 수 없는. 잠시 기다렸다가 다시 시도하십시오. –