文件名有两个反斜杠C#
对此可能有一个简单的答案,但是当我将DateTime.Now.ToString()
添加到我的fileName时,它为每个\添加了一个额外的\,因此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