おそらく簡単な答えがありますが、ファイル名にDateTime.Now.ToString()
を追加すると、すべての\が追加されます。C:\Temp
はC:\\Temp
になります。ファイル名にバックスラッシュが2つあります。C#
これは、出力がC:\\Temp\\data_12/04/2012 20:08:40.txt
可能性が例えばそれはC:\Temp\data_12/04/2012 20:08:40.txt
おそらく簡単な答えがありますが、ファイル名にDateTime.Now.ToString()
を追加すると、すべての\が追加されます。C:\Temp
はC:\\Temp
になります。ファイル名にバックスラッシュが2つあります。C#
これは、出力が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() + ".txt";
のコードで、その文字列は本当にで単一のバックスラッシュを持っている。それを印刷しますあなたはそれを見るでしょう。
デバッガで見ると、バックスラッシュがエスケープされていることがわかりますが、文字列自体にはバックスラッシュが1つあります。 。。これは、多くの人々を刺さ:(
あなたはどこにいるのですか?出力が保存されていない場所C:\ Temp \ data_04 12 20:43 2012.txt –
コードを一切表示せずに、「出力を保存しない」という意味を知ることはできません。 –
どのバージョンのウィンドウが最終的に廃止され、エスケープとパス区切り文字の両方を意味するとしてバックスラッシュが廃止されるでしょうか? – payo
それは実際のファイル名で違法であるスラッシュで前方には法的なものでスラッシュ交換して、もう一度試して
コロンが問題になるかもしれません... – Servy
@Servy、あなたは正しいです、私のパーサーが最初のエラーで救済されました。 –
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
書式を設定してみてください:\がエスケープされているので
String fileName = @"C:\Temp\data_" + DateTime.Now.ToString("MM d HH mm yyyy") + ".txt";
コロンはそれを壊します – Servy
@セイビーはい、迅速にしようとする.. :) –
実際には、変数の値の2つのバックスラッシュを示しています。変数値を出力すると、バックスラッシュが1つしかないことがわかります。
これはそうではありません。これは、バックスラッシュをエスケープする必要があるため、ビジュアライザーが表示する方法です。 – BrokenGlass