打开一个文件';s正在被另一个进程使用

本文关键字:另一个 进程 文件 一个 | 更新日期: 2023-09-27 18:29:37

我已经研究了几种读取另一个进程已经在使用的文件的解决方案,但似乎都不适合我。

我试图读取的文件是一个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());
    }
}

这似乎对其他人都有效,我不知道我做错了什么!我的文件是否以不同的方式锁定,甚至无法读取?

非常感谢您的帮助!

Dave

打开一个文件';s正在被另一个进程使用

根据您的注释,原始进程已使用FileShare.None打开文件。来自MSDN:

拒绝共享当前文件。任何打开文件的请求(通过这个过程或另一个过程)将失败,直到文件被关闭。

原始进程有一个独占锁,因此除非FileShare枚举从None更改或关闭文件,否则您将无法从中读取。