C# 将文本从C文本框保存到txt文件。(每次创建一个新的txt文件,但文件名不相同)

C# 将文本从C文本框保存到txt文件。(每次创建一个新的txt文件,但文件名不相同),c#,filestream,C#,Filestream,我想把C应用程序文本框中的文本转换成一个.txt文件。我遇到的问题是,当前保存的文件将覆盖以前保存的文件。我目前的代码是: string log = @"C:\log.txt"; using (FileStream fs = new FileStream(log, FileMode.Create)) { using (StreamWriter sw = new StreamWriter(fs)) { foreach(string line in Textbox

我想把C应用程序文本框中的文本转换成一个.txt文件。我遇到的问题是,当前保存的文件将覆盖以前保存的文件。我目前的代码是:

string log = @"C:\log.txt";     
using (FileStream fs = new FileStream(log, FileMode.Create)) {
    using (StreamWriter sw = new StreamWriter(fs)) {
         foreach(string line in Textbox1.Lines)
             sw.Write(line + sw.NewLine);
     }
 }
是否可以保存txt文件,但不覆盖以前保存的文件?有人能帮我吗。。谢谢

这应该会有帮助:

string log = @"C:\log.txt";     

int intCounter = 0;
While(File.Exists(log))
{
  log = @"C:\log"+ intCounter.ToString() +".txt";    
}
试试这个

string log = @"C:\log"+ DateTime.Now.ToString("dd-MM-yyyy hh-mm-ss") +".txt";

只需在文件名中添加一个时间戳

我相信您所说的是添加行:

using(FileStream fs = new FileStream(log, FileMode.Append)) {
    //...
}

如果要写入同一文件,可以使用FileMode.Append:

FileStream fs = new FileStream(log, FileMode.Append)
如果你在一个线程化的环境中,我怀疑是asp.net,因为你在谈论下载,关于文件锁之类的东西,请小心,试试看

string log = @"C:\log"+ DateTime.Now.ToString("yyyyMMddHHmmssfffffff")+".txt";
这会使精度达到千万分之一秒

试试这个==>


字符串日志=@C:\log+new Guid.toString+.txt

ohohoo,“:”在文件系统中?好笑话:什么abot-yyyyMMdd hhmmss?@user1727958欢迎来到SO!如果你认为这是正确的答案,请接受它,因为这些文件无法排序。。。用零填充或使用stamp@sasjaq当然,它们可以被排序,这叫做自然排序,在Windows资源管理器中可以完美地工作。它比时间戳更容易读取。如果您只是出于日志目的使用它,请使用日志框架,而不是像Log4Net一样。它会为你做这一切。