检查文件是否打开,如果打开则关闭

本文关键字:如果 文件 检查 是否 | 更新日期: 2023-09-27 18:06:09

我有一个c# windows窗体应用程序,它将结果写入文本文件。这是通过在各自的时间点击不同的按钮来完成的,这些按钮都运行函数来将特定的文本添加到文件中。

文本文件可以通过按钮点击打开查看,一旦它被创建(如我的用户所要求的),唯一的问题是,当下一次按钮点击试图写入文件,它抛出一个异常,因为该文件已经被另一个进程使用。

理想情况下,我想做的是运行一个函数来检查文件是否打开,如果发现它是打开的,则关闭它。

我已经浏览了堆栈溢出和其他各种网站,但找不到任何与这个概念特别相关的东西!

如果有人能提供任何建议,我将不胜感激。

检查文件是否打开,如果打开则关闭

使用File.Open("", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)函数(可根据需要修改参数)允许共享文件访问模式

你可以像

一样使用它
using (var f = File.Open("file.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
{
    using (var writer = new StreamWriter(f))
    {
        writer.Write(data);
    }
}