【问题标题】:DateTime as file name日期时间作为文件名
【发布时间】:2014-03-09 15:42:48
【问题描述】:

我需要创建一些名称如下的日志文件: HH:mm_dd-MM-yyyy.log

我尝试像这样转换 DateTime 和 DateTime.Now 但编译器遇到下一个错误:

The given path's format is not supported.

我试过的代码:

#1
var currentDateTime = DateTime.Now;
string format = "HH:mm_dd-MM-yyyy";
string datetime = currentDateTime.ToString(format);
File.Create("Log/GameLog/"+datetime+".log");
#2
string datetime = DateTime.Now.ToString("HH:mm_dd-MM-yyyy");
File.Create("Log/GameLog/"+datetime+".log");

在这两种情况下,编译器引发了相同的错误... 所以最后,我的问题是,我怎样才能使用 datetime 作为文件名?

【问题讨论】:

  • 顺便说一句,如果您希望所有日志文件按日期排序,请使用DateTime.Now.ToString("yyyyMMddHHmmss"),那么同一天的所有文件将始终粘在一起

标签: c# datetime time


【解决方案1】:

问题是: 字符,你不能在文件名中使用它

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

【讨论】:

    【解决方案2】:

    Widows 操作系统不允许在 filename 中跟随特殊字符。

    / \ : * ? " < > |
    

    因此您需要将冒号 : 替换为其他字符(_-

    试试这个:

    string datetime = DateTime.Now.ToString("HH_mm_dd-MM-yyyy");
    

    【讨论】:

      【解决方案3】:

      尝试删除一些您使用格式返回的字符,然后一次添加它们以查看导致问题的原因。

      我的猜测是它可能是 : 导致您出现问题的字符

      也可以查看这篇文章,这可能会有所帮助。

      How to remove illegal characters from path and filenames?

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-30
        • 2014-04-14
        • 1970-01-01
        相关资源
        最近更新 更多