0

我想从我的 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 文件但不会覆盖以前保存的文件?有人可以帮我解决这个问题。。谢谢

4

6 回答 6

3

我相信您正在谈论附加以下行:

using(FileStream fs = new FileStream(log, FileMode.Append)) {
    //...
}
于 2012-10-08T07:02:17.823 回答
3

尝试这个

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

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

于 2012-10-08T06:57:25.120 回答
1

尝试

string log = @"C:\log"+ DateTime.Now.ToString("yyyyMMddHHmmssfffffff")+".txt";

这提供了高达百万分之一秒的精度

于 2012-10-08T07:05:58.133 回答
1

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

FileStream fs = new FileStream(log, FileMode.Append)

如果您在线程环境中(即我怀疑因为您在谈论下载,我怀疑它),请注意文件锁定等

于 2012-10-08T07:03:38.930 回答
0

试试这个==>

string log = @"C:\log"+ new Guid().ToString("N") +".txt";

于 2012-10-08T07:09:20.960 回答
0

这应该有助于:

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

int intCounter = 0;
While(File.Exists(log))
{
  log = @"C:\log"+ intCounter.ToString() +".txt";    
}
于 2012-10-08T06:55:28.913 回答