文件名有两个反斜杠 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
不,该字符串确实只有一个反斜杠。将其打印到控制台,您将看到它。
如果在调试器中查看它,您将看到反斜杠已转义 - 但字符串本身具有单个反斜杠。这咬了很多人:(
实际上是文件名中的正斜杠是非法的。将正斜杠替换为合法的内容,然后重试。
尝试设置格式:
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