1

在尝试使用此方法从我的 ASP.NET Web 应用程序中读取文件时:

string strContents;
using (StreamReader sr = new StreamReader(strFilePath))
{
    strContents = sr.ReadToEnd();
}

我得到以下异常:

该进程无法访问文件“file_path”,因为它正被另一个进程使用。

所以我很好奇,有没有办法知道是什么锁定了这个文件?

PS。很高兴从异常内部知道这一点,如果不可能,有没有其他方法可以知道它?

4

1 回答 1

1

标准答案是使用像句柄这样的 SysInternals 工具之一来查看锁定文件的进程。

如果您确定这是您的代码 - 代码审查可能比使用 WinDbg 挖掘进程的转储更容易。

如果您想编写自己的 - 阅读“Windows Internals”书本质上是必须的,并且具有良好的互操作知识将是加分项。

于 2013-03-15T05:11:00.600 回答