我有一个程序使用FileSystemWatcher
该类监视目录的更改。我有一些其他客户使用StreamWriter
. “有时”,在 filesystemwatcher created 事件中,当我尝试访问文件时,出现错误。
这很难调试,因为它不会经常发生。客户端通过将流封闭在一个Using
块中来正确关闭流。错误出现在“此应用程序无法使用该文件,因为它正在被另一个进程使用”的行上。我不太明白这一点,当客户端使用相同的代码将文件写入目录时,为什么错误只会偶尔出现。有时,手动复制会引发错误,而大多数时候它会通过。
有问题的目录不是网络目录,而是本地目录。请建议。
客户代码
using (StreamWriter ss = new StreamWriter(input)) {
ss.WriteLine(args(0));
ss.Close();
}
监控应用程序事件代码
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();
}
}