我有一个程序,我希望它用这种技术将东西记录到.txt文件中:
if (Directory.Exists(@"C:\Log"))
{
string[] start = { DateTime.Now + ": Program Started\n" };
File.WriteAllLines(@"C:\Log\Log.txt", start);
Console.Clear();
}
else
{
Directory.CreateDirectory(@"C:\Log");
string[] start = { DateTime.Now + ": Program Started\n" };
File.WriteAllLines(@"C:\Log\Log.txt", start);
Console.Clear();
}
使用这种技术我遇到了问题。当我在程序运行后检查日志文件时,我只找到一行而不是多行,因为这只是程序启动。所以看起来应该是这样的:
(时间):程序开始了 (时间):发生了一些事情 (时间):程序已关闭
而不是:
(时间):节目已关闭
答案 0 :(得分:1)
你的程序应该是这样的:
if (!Directory.Exists(@"C:\Log")) {
Directory.CreateDirectory(@"C:\Log");
}
...
// Your program runs, you add log lines
string[] start = { DateTime.Now + ": Program Started\n" };
File.AppendAllLines(@"C:\Log\Log.txt", start);
// End add log lines
...
答案 1 :(得分:0)
使用StreamWriter:
using (StreamWriter sw = new StreamWriter(@"C:\Log.txt", true))
{
sw.WriteLine("Hello Log");
}
答案 2 :(得分:0)
File.WriteAllLines
都会覆盖您的文件。您想要将文本附加到文件中。您可以使用File.AppendAllLines
或File.AppendAllText
,因为您看起来一次只能写一行。
答案 3 :(得分:0)
问题是您使用File.WriteAllLines
,每次调用时都会创建一个新文件,以解决此问题,您可以使用{em>将追加行添加到文件中File.AppendAllLines
,然后关闭该文件。如果指定的文件不存在,File.AppendAllLines
方法将创建一个文件。
答案 4 :(得分:0)
感谢您的回答,File.AppendAllLines有效!
答案 5 :(得分:0)
我运行这样的
if (!Directory.Exists(path))
{
DirectoryInfo di = Directory.CreateDirectory(path);
}
File.AppendAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path, folderTarget, fileTarget), "Hello Log");