Создайте пользовательское имя файла каждый раз и используйте File.WriteAllText
(который создаст новый файл, запишет содержимое в файл, а затем закроет файл. Если целевой файл уже существует , он перезаписывается.) вместо File.AppendAllText
В вашем случае filePath
должен быть динамическим, который может быть сконструирован так:
string basePath = ""; // this should be path to your directory in which you wanted to create the output files
string extension = ".xml";
string fileName = String.Format("{0}{1}{2}","MyFile",DateTime.Now.ToString("ddMMyy_hhmmss"),extension );
string filePath = Path.Combine(basePath,fileName);
В приведенном выше фрагменте DateTime.Now.ToString("ddMMyy_hhmmss")
будет текущим временем (во время выполнения кода), которое будет отличаться при каждом выполнении, поэтому имя файла будет отличаться при каждом запуске. И в более поздние моменты вы можете искать / группировать файлы на основе этих общих шаблонов.
Еще одна вещь:
В вашем коде вы использовали переменную List<string> ls
, которая заполняется всеми журналами, и вы записываете содержимое log
в файл, который содержит только последнюю запись. Таким образом, заявление для написания содержания должно быть:
File.WriteAllText(filePath, String.Join("\n",log));
или даже просто
File.WriteAllLines(filePath, log);