根据时间保存文件名

Saving Filename based on time

我正在制作一个基本程序,当涉及到保存数据时,我试图将其放入 .txt 中 - 它工作正常。问题是,除了日期之外,我无法保存 seconds/hours,所以我的解决方案是只获取日期,然后将 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'.

是否要求您的文件名不能使用 Hour/Minute/Second? 您正在使用 DateTime.Now.Date.ToString(..),这将删除 hour/minute/second 数据。您可以使用DateTime.Now.ToString(..)来保留次日数据。

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

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