根据时间保存文件名

时间:2018-01-29 18:21:18

标签: c# datetime filenames

我正在制作一个基本程序,当涉及到保存数据时,我试图把它放到.txt中 - 这很好用。问题是,除了日期之外我无法保存秒/小时,所以我的解决方案是获取日期,然后分别在最近的文件上放置1,2,3。我制作的代码是:

static string FileName()
{
    string fileName = "";
    char last = ' ';
    int lastDigit = 0;
    string lastDigitString = "";
    string directory = Directory.GetCurrentDirectory(); 
    if (File.Exists(DateTime.Now.Date.ToString("dd-MM-yy" + "1") + ".txt"))
    {
        fileName = Path.GetFileNameWithoutExtension(newFileName + ".txt");
        last = fileName[fileName.Length - 1];
        lastDigit = int.Parse(last.ToString());
        lastDigit = lastDigit + 1;
        lastDigitString = lastDigit.ToString();
        newFileName = fileName + lastDigitString;
    }
    else
    {
        newFileName = DateTime.Now.Date.ToString("dd-MM-yy" + "1");
    }

    return fileName;
}

将newFileName定义为顶部的全局变量。

public static string newFileName = DateTime.Now.Date.ToString("dd-MM-yy" + "1");

我一直在搞乱一些可能不合适的事情。我的解决方案是获取文件名,然后取下.txt - 这将留下我的名字,我得到名称的最后一位数,然后将其增加一,然后将其添加到新文件的末尾名称。它是'FileName1'然后'FileName12'这是我希望得到的,但是一旦它在那里继续添加'FileName12',这显然是从附加设置为true,但我希望有一个'FileName123'。

2 个答案:

答案 0 :(得分:2)

是否要求不使用小时/分钟/秒作为您的文件名? 您正在使用DateTime.Now.Date.ToString(..),这将删除小时/分钟/秒数据。您可以使用DateTime.Now.ToString(..)保留子日数据。

您需要提供自己的格式字符串以生成文件名友好的输出。

答案 1 :(得分:1)

这是因为时间有冒号:并且不支持作为Windows文件