打开一个文件';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
根据您的注释,原始进程已使用FileShare.None
打开文件。来自MSDN:
拒绝共享当前文件。任何打开文件的请求(通过这个过程或另一个过程)将失败,直到文件被关闭。
原始进程有一个独占锁,因此除非FileShare
枚举从None
更改或关闭文件,否则您将无法从中读取。