C#递增文件名

时间:2015-05-20 18:58:24

标签: c# path increment streamwriter

我想稍微更改一下代码,这样如果我已经有了一个文件,它会在文件名后面写(1),(2)等。以当前方式,它保存文件,然后另一个程序使用添加更多行到现有文件。如果我知道如何更改它,我正在考虑使文件不是(1),(2),而是Results_DATE_TIME(例如:结果_2015_05_20_1953)。

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
foreach (string filename in openFileDialog.FileNames) //number of files varies
{
    double m = Math();

    string path = desktopPath + @"\Results.txt";
    using (StreamWriter writer = new StreamWriter(path, true))
    {
        writer.WriteLine(m);
    }
}

4 个答案:

答案 0 :(得分:0)

尝试按照

的方式进行尝试
  path = "Results-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ff") + ".txt";

答案 1 :(得分:0)

使用以下内容替换路径生成:

string fileName = string.Format(@"\Results_{0}.txt", DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss"));
string path = desktopPath + fileName;

答案 2 :(得分:0)

如果两个人同时添加文件,则无论如何都会发生冲突。在那种情况下,我会使用guid:

path = += "-" + Guid.NewGuid().ToString();

答案 3 :(得分:0)

试试这个

   fileName = string.Concat(@"\Results_", DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ff"), ".txt");
    string path = desktopPath + fileName;