【发布时间】:2011-04-13 20:09:32
【问题描述】:
我有一个大致可以做到这一点的程序:
- 打开要读取的文件。
- 关闭文件
- 启动文件监视程序以监视文件中的更改。
- 一旦检测到更改,文件监视器的 EnableRaisingEvents 标志就会设置为 false,并且该过程从步骤 1 开始重复。
问题是,从第 4 步转到第 1 步后,它无法读取文件说它正在被另一个进程使用。
我收到错误:
未处理的异常:System.IO.IOException:进程无法访问文件“c:\test.xml”,因为它正被另一个进程使用。
怎么了?我的程序第 1 步中的阅读器是否仍然打开文件,或者是访问文件的完全不同的进程,还是文件观察器在从第 4 步移到第 1 步后仍在观看文件,尽管将标志设置为 false?
【问题讨论】:
-
你能发布你的代码吗?这可能有助于我们回答您的问题。
-
发布一些代码。帮助我们帮助您。
-
代码有点庞大和机密,因为它是给一家金融公司的,但我会看看我是否可以让它安全并发布它。
-
也许你应该发布一些代码(只是打开和关闭文件的部分)。也许您的程序仍然打开文件,或者 FileWatcher 仍然打开。
-
很可能您的步骤 1 中的代码保持文件锁定,我会先看看那里
标签: c#