There is probably an easy answer for this, but when I added DateTime.Now.ToString()
to my fileName it adds an extra \ for every \ I have so C:\Temp
becomes C:\\Temp
which causes the file not to save.
This is the code in question
String fileName = @"C:\Temp\data_" + DateTime.Now.ToString() + ".txt";
For example the output could be C:\\Temp\\data_12/04/2012 20:08:40.txt
It should be C:\Temp\data_12/04/2012 20:08:40.txt
Nope, that string really has single backslashes in. Print it out to the console and you'll see that.
If you look at it in the debugger, you'll see the backslashes escaped - but the string itself has single backslashes. This bites lots of people :(
It is actually the forward slashes that are illegal in filename. Replace the forward slashes with something legal and try again.
Try setting a format:
String fileName = @"C:\Temp\data_" + DateTime.Now.ToString("MM d HH mm yyyy") + ".txt";
Actually, it shows two backslashes in the variable value because the \ is escaped. If you print the variable value, you should see that it only have one backslash.
String fileName = String.Format(@"C:\Temp\data_{0}.txt",DateTime.Now.ToString("ddMMyyyyHHmmss"));
Output: C:\Temp\data_12042012214358.txt
or use
String fileName = String.Format(@"C:\Temp\data_{0}.txt", DateTime.Now.ToString("dd.MM.yyyy HH-mm-ss"));
Output: C:\Temp\data_12.04.2012 21-45-03.txt