使用当前日期创建文件名

时间:2015-07-01 09:52:01

标签: c# datetime directory

在我的C#Windows窗体应用程序中,我有日志数据。我把它们保存在一个文本文件中, 但我想用当前日期/时间的一些描述来命名这个文件。但是在调试代码时我遇到了这个错误:

  

不支持给定路径的格式。

这是我的代码:

        string dateAndTime = " '' " + DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString() + " '' ";
        string sPath = @"C:/Desktop/Logs - "+ dateAndTime + ".txt";
        int type = 0;
        using (StreamWriter sw = File.CreateText(sPath))
        {
            int J = 0;
            for (int i = 0; i < logsList.Count; i++)
            {
                if (logsList[i + 3] == "IN")
                {
                    type = 3;
                }
                else if (logsList[i + 3] == "OUT")
                {
                    type = 4;
                }

                sw.WriteLine(logsList[i] + "          " + logsList[i + 1] + "       " + logsList[i + 2] + "     " + logsList[i + 3] + "     " + logsList[i + 4]);
                i += 4;
            }
        }

2 个答案:

答案 0 :(得分:5)

将此用于不带斜杠的格式

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");

ToShortDateString使用当前语言,这将导致不同的结果,具体取决于代码执行的机器

答案 1 :(得分:0)

您的文件名格式错误,操作系统将不支持此类文件名格式。

即:您的文件名包含/:,这些是操作系统不支持命名文件的特殊字符。

这就是你收到错误

的原因
  

不支持给定路径的格式。

File Name is wrong

  

另外我建议你不要使用像" '' "这样的特殊字符。在那里不需要它。

如果您希望此类文件名格式为C:/Desktop/Logs - 7-1-2015-3-45 PM.txt,请使用以下代码。

有效文件名的示例代码:

string dateAndTime = DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString();
dateAndTime = dateAndTime.Replace('/', '-');
dateAndTime = dateAndTime.Replace(':', '-');