使用WriteAllLines附加到文本文件

时间:2013-03-13 07:18:21

标签: c# asp.net

我使用以下代码写入文本文件。我的问题是,每次执行以下代码时,它都会清空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 个答案:

答案 0 :(得分:8)

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);

答案 1 :(得分:5)

使用File.AppendAllLines。应该这样做

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

答案 2 :(得分: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);
}

答案 3 :(得分: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);
          }

因此,如果文件不存在,它将创建并写入文件,如果文件存在,它将附加到文件中。

答案 4 :(得分:1)

三个函数可用..File.AppendAllLine,FileAppendAllText和FileAppendtext ..你可以尝试像你一样......

答案 5 :(得分:1)

使用

public static void AppendAllLines(     字符串路径,     IEnumerable内容 )

答案 6 :(得分:1)

在上述所有情况中,我更倾向于使用以确保打开和关闭文件选项。