C# 进程无法访问文件,因为在打开文件运行时另一进程正在使用该文件

C# 进程无法访问文件,因为在打开文件运行时另一进程正在使用该文件,c#,C#,我使用以下代码创建日志文件并在运行时追加文本。在此期间,我打开了一个日志文件。此应用程序显示错误:进程无法访问文件,因为另一个进程正在使用该文件。我想在运行时打开正在运行的项目的日志。如何修复错误? 谢谢 如果打开该文件的进程已打开该文件,并且不允许共享,那么您确实没有适当的方法获取该文件的内容 如果操作系统配置为使用它,您可能可以使用VSS(也称为卷影副本)获取文件先前外观的快照,但它不会是当前文件的实时最新视图。为此,您需要共享访问权限。我不知道有多困难 但是,如果另一个进程不允许共享打开该

我使用以下代码创建日志文件并在运行时追加文本。在此期间,我打开了一个日志文件。此应用程序显示错误:进程无法访问文件,因为另一个进程正在使用该文件。我想在运行时打开正在运行的项目的日志。如何修复错误? 谢谢


如果打开该文件的进程已打开该文件,并且不允许共享,那么您确实没有适当的方法获取该文件的内容

如果操作系统配置为使用它,您可能可以使用VSS(也称为卷影副本)获取文件先前外观的快照,但它不会是当前文件的实时最新视图。为此,您需要共享访问权限。我不知道有多困难

但是,如果另一个进程不允许共享打开该文件,那么您唯一的选择就是等待该进程终止,然后再尝试访问该文件


如果是您的应用程序保存了文件,那么您可以通过您在问题代码中使用的相同文件访问掩码来允许共享打开文件,从而更改其打开文件的方式。

如果另一个进程正在使用该文件,请检查是您的进程还是其他人的进程……我想通过word打开该文件,以便在运行期间查看对不起,我的英语!据我所知,您不能通过两个或多个不同的进程访问同一个文件。@SarangK:除非它足以以只读模式打开文件。只有一个进程可以写;但是多个进程可以读取。
using (var stream = new FileStream(
       path, 
       FileMode.Open, 
       FileAccess.Read, 
       FileShare.ReadWrite))
{
    StreamWriter streamWriter = new StreamWriter(stream);
    streamWriter.Write(message);
    streamWriter.Close();
    stream.Close();
}