0

在 WINDOWS/system32/LogFiles 中打开一个文件

    using (StreamReader r = new StreamReader(fileName))

生成异常“因为该文件正在被另一个进程使用”。我怎样才能弄清楚另一个过程是什么?可能是服务器更新日志吗?如果是,我如何确保我关联的计划任务也可以访问?

谢谢!

恐怕我没有在这台服务器上安装程序的授权。

4

3 回答 3

2

这是令人不安的老派,但我喜欢这个非常糟糕的实用程序:wholockme http://www.dr-hoiby.com/WhoLockMe/

它让您知道谁锁定了文件。

雅各布

于 2009-08-11T21:14:00.377 回答
1

就个人而言,我更喜欢ProcessExplorer的“查找句柄”功能。

您也可以尝试以共享模式打开文件:

using (FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader r = new StreamReader(fs))
    ... 
于 2009-08-11T21:39:53.880 回答
0

如果你想知道谁打开了文件,我最喜欢的应用是 SysInternals 的 Handle ( http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx )。我知道您说过您无权安装应用程序,这只是您运行的单个可执行文件,如果您愿意,可以从网络共享运行它。

我遇到了 SMTP 服务日志的 LogFiles 锁定问题,我的解决方案是将文件复制到另一个位置并从那里打开它。可能适用于你正在做的事情。

于 2009-08-11T23:46:27.247 回答