文件名有两个反斜杠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