打开另一个进程正在使用的文件

时间:2014-11-08 15:53:51

标签: c# file-io file-in-use

我已经看过几个解决方案来读取已经被另一个进程使用的文件,但它们似乎都不适用于我。

我正在尝试阅读的文件是一个XML文件,其中包含我需要提取的配置设置。

以下是我的尝试:

using (var stream = File.Open("\\\\2008r2\\c$\\ProgramData\\location\\siteConfig.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var reader = new StreamReader(stream))
{
    // Actions you perform on the reader.
    while (!reader.EndOfStream)
    {
        Console.WriteLine(reader.ReadLine());
    }
}

这似乎适用于其他所有人,我不知道我做错了什么!我的文件是否以不同的方式锁定,即使阅读也无法访问?

非常感谢!

戴夫

1 个答案:

答案 0 :(得分:1)

根据您的评论,原始流程已使用FileShare.None打开文件。来自MSDN

  

拒绝分享当前文件。任何打开文件的请求(通过   在文件关闭之前,此过程或其他过程将失败。

原始进程对其进行了独占锁定,因此除非从FileShare更改None枚举或文件已关闭,否则您将无法从中读取。