2014-10-31 93 views
-2

我编写需要创建一个CSV文件中的C#应用​​程序。如何在File.CreateText后附加到文件?

的问题是发出File.CreateText({文件路径})后,我不能立即写入。如果文件已经存在,我可以写没有问题。下面是代码:

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 ......”

它是生产的错误说,它不能写,因为该文件正在使用另一个过程。

+3

你看过了'File.CreateText'的文档? – 2014-10-31 06:29:27

+0

Y,对不起。我忘了提及我尝试了这种方法,并得到了同样的错误。然后我缩短了这一点。 – 2014-10-31 06:38:44

+0

是的。谢谢你提醒我。我很忙,忘了回来并给出答案。 – 2014-11-02 23:20:02

回答

1

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

当读取docsFile.CreateText时,请务必查看返回值以了解该函数的功能。

请阅读documentationFile.AppendAllText,以及,然后相应地更改代码。

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

AppendAllText(字符串,字符串)
说明
打开一个文件,将指定字符串的文件,然后关闭文件。如果该文件不存在,则此方法将创建一个文件,将指定的字符串写入该文件,然后关闭该文件。

你应该可以自己解决你的问题了。

+0

感谢wolfgangwalther。这导致了整理这个问题。 – 2014-11-02 23:20:50