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

时间:2015-08-02 14:08:40

标签: c# writetofile

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

文本文件一旦创建(按照我的用户的要求),就可以通过按钮点击打开查看,唯一的问题是,当下一个按钮点击尝试写入文件时,它会抛出异常,因为文件已被其他进程使用。

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

我已经了解了堆栈溢出和其他各种网站,但找不到与此概念特别相关的任何内容!

如果有人可以提供任何建议,我真的很感激。

1 个答案:

答案 0 :(得分:3)

使用函数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);
    }
}