我使用以下代码写入文本文件。我的问题是,每次执行以下代码时,它都会清空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);
答案 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)
在上述所有情况中,我更倾向于使用以确保打开和关闭文件选项。