文件名有两个反斜杠 C#

本文关键字:两个 文件名 | 更新日期: 2023-09-27 18:31:08

这个问题

可能有一个简单的答案,但是当我将DateTime.Now.ToString()添加到我的文件名中时,它会为我拥有的每个''添加一个额外的'',因此C:'Temp变得C:''Temp导致文件无法保存。

这是有问题的代码

String fileName = @"C:'Temp'data_" + DateTime.Now.ToString() + ".txt";

例如,输出可以是C:''Temp''data_12/04/2012 20:08:40.txt

应该是C:'Temp'data_12/04/2012 20:08:40.txt

文件名有两个反斜杠 C#

不,该字符串确实只有一个反斜杠。将其打印到控制台,您将看到它。

如果在调试器中查看它,您将看到反斜杠已转义 - 但字符串本身具有单个反斜杠。这咬了很多人:(

实际上是文件名中的正斜杠是非法的。将正斜杠替换为合法的内容,然后重试。

尝试设置格式:

String fileName = @"C:'Temp'data_" + DateTime.Now.ToString("MM d HH mm yyyy") + ".txt";

实际上,它在变量值中显示了两个反斜杠,因为 '' 被转义了。如果打印变量值,应会看到它只有一个反斜杠。

String fileName = String.Format(@"C:'Temp'data_{0}.txt",DateTime.Now.ToString("ddMMyyyyHHmmss"));

输出:C:'Temp'data_12042012214358.txt

或使用

String fileName = String.Format(@"C:'Temp'data_{0}.txt", DateTime.Now.ToString("dd.MM.yyyy HH-mm-ss"));

输出:C:'Temp'data_12.04.2012 21-45-03.txt