最初我只使用
TextWriter iterationLogger = new StreamWriter(Iteration log.txt");
效果很好,但我想在文件中添加时间戳并尝试了这个:
TextWriter iterationLogger = new StreamWriter($"{DateTime.Now} Iteration log.txt");
然后 StremWritter 抛出 “文件名、目录名或卷标语法不正确”
我尝试了各种参数(附加、编码、@、$)和格式,例如
string.Format("{0} Iteration log.txt", DateTime.Now)
但问题依然存在
据我所知,只有一个字符串 StreamWritter 就在程序文件夹内创建了文件,但是随着在字符串内添加 DateTime 阻止了文件创建,发生了一些变化?
像这样使用
DateTime.Now
使用 DateTime 的默认 ToString() 实现,这会导致类似 28.02.2023 17:21:45
的结果(也取决于您的区域设置)。但是,通常不允许在文件或目录名称中使用冒号。
例如,您可以使用 $"{DateTime.Now:yyyy-MM-dd_HH-mm}"
之类的东西。
DateTime.Now
包含/
和:
字符。文件名不能包含此字符。
你必须给一个
valid date format
。例如:
StreamWriter($"{DateTime.Now.ToString("yyyyMMddHHmmSS")} Iteration log.txt");