使用WriteAllLines将内容追加到文本文件

11

我正在使用以下代码写入文本文件。我的问题是每次执行以下代码时,它都会清空txt文件并创建一个新文件。有没有一种方法可以追加到这个txt文件中?

string[] lines = {DateTime.Now.Date.ToShortDateString(),DateTime.Now.TimeOfDay.ToString(), message, type, module };
System.IO.File.WriteAllLines(HttpContext.Current.Server.MapPath("~/logger.txt"), lines);
7个回答

22

File.AppendAllLines 应该对你有帮助:

string[] lines = {DateTime.Now.Date.ToShortDateString(),DateTime.Now.TimeOfDay.ToString(), message, type, module };
System.IO.File.AppendAllLines(HttpContext.Current.Server.MapPath("~/logger.txt"), lines);

AppendAllText方法不接受字符串数组作为第二个参数。正确的答案应该是使用AppendAllLines方法之一。 - pierce.jason
注意,这不会清除文本文件中现有的项目。 - Kurkula

9

使用File.AppendAllLines方法,就可以实现此功能。

System.IO.File.AppendAllLines(
       HttpContext.Current.Server.MapPath("~/logger.txt"), 
       lines);

3
您可以使用StreamWriter来进行操作,如果文件存在,则可以选择覆盖或追加数据到文件中。如果文件不存在,则该构造函数将创建一个新文件。
string[] lines = { DateTime.Now.Date.ToShortDateString(), DateTime.Now.TimeOfDay.ToString(), message, type, module };

using(StreamWriter streamWriter = new StreamWriter(HttpContext.Current.Server.MapPath("~/logger.txt"), true))
{
    streamWriter.WriteLine(lines);
}

2

做如下操作:

string[] lines = {DateTime.Now.Date.ToShortDateString(),DateTime.Now.TimeOfDay.ToString(), message, type, module };
          if (!File.Exists(HttpContext.Current.Server.MapPath("~/logger.txt")))
          {
              System.IO.File.WriteAllLines(HttpContext.Current.Server.MapPath("~/logger.txt"), lines);
          }
          else
          {
              System.IO.File.AppendAllLines(HttpContext.Current.Server.MapPath("~/logger.txt"), lines);
          }

如果文件不存在,它将创建并写入文件;如果文件存在,则将追加到文件中。

5
不需要。AppendAllLines将在文件不存在时创建该文件。 - nunespascal
System.IO.File 中没有追加行。 - user1292656
@user1292656:请在网络上查看是否存在AppendAllLines方法,您提到的是AppendLines,真不知道那是什么。 - CodeGuru

1

使用

public static void AppendAllLines( string path, IEnumerable contents )

将指定的文本行追加到文件中。路径参数指定要写入的文件,contents参数包含要追加到文件的文本行的集合。

0
在上述所有情况下,我更喜欢使用“using”来确保打开和关闭文件选项得到处理。

0

有三个可用的函数..File.AppendAllLine,FileAppendAllText和FileAppendtext..您可以随意尝试...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接