如何在File.CreateText之后附加到文件?

时间:2014-10-31 06:25:26

标签: c#

我正在编写一个需要创建CSV文件的C#应用​​程序。

问题是在发出File.CreateText({file path})之后,我无法立即写入它。如果文件已经存在,我可以写没有问题。这是代码:

if (!File.Exists(file_name))
        {

            File.CreateText(file_name);
            File.WriteAllText(file_name, String.Format("Old Name,Short Name{0}", this.old_name_txt.Text, this.new_name_txt.Text, Environment.NewLine));
        }
        else
        {
            File.AppendAllText(file_name, String.Format("{0},{1}{2}", this.old_name_txt.Text, this.new_name_txt.Text, Environment.NewLine));
        }

创建文件后,我也试过" File.AppendAllText ..."

它产生的错误表明它无法写入,因为该文件正由另一个进程使用。

1 个答案:

答案 0 :(得分:1)

File.CreateText将创建一个文本文件并打开该文件。然后它返回一个StreamWriter,您可以使用它来访问该创建的文件。因为您已经打开了这样的文件,所以在尝试再次打开该文件时会出错。

在阅读File.CreateText的{​​{3}}时,请务必查看返回值,以了解该功能的用途。

请同时阅读File.AppendAllText的{​​{3}},然后相应地更改您的代码。

这是文档中最重要的部分:

  

AppendAllText(String,String)
  的描述
  打开文件,将指定的字符串附加到文件,然后关闭该文件。如果文件不存在,则此方法创建文件,将指定的字符串写入文件,然后关闭文件。

你现在应该能够自己解决问题。