2017-01-30 11 views
1

私はインターンシップのためにWindows-Formsのクイズアプリケーションを作成しようとしていますが、結果を保存ファイルに保存することができません。これは私が使用するコードです: c#パス形式がサポートされていませんwritealllines

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 

System.IO.File.WriteAllLines(desktopPath + @"\saveFile_" + DateTime.Now.ToString() + ".txt", saveFile); 

私はそれがクラッシュすると、パスのフォーマットがサポートされていないことを私に伝え、新しいテキストファイルに保存する]ボタンをクリックし

デスクトップ上に新しいテキストファイルを保存するように修正する方法を教えてください。

+7

'DateTime.Now.ToString()'には、「不正なファイル名文字」である ':'が含まれます(https://msdn.microsoft.com/de-de/library/system.io.path.getinvalidfilenamechars() v = .110).aspx)。サイドノートに –

+3

、私のデスクトップにファイルをダンプしたアプリケーション – dlatikay

答えて

3

DateTime.Now.ToString()は、30.01.2017 10:30:00または01/30/2017 10:30:00と同様の文字列になります。

:ので、手動のタイムスタンプにそれをフォーマットするなど、それを取り除く必要がありinvalid file name characterです:

string filename = "saveFile_" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".txt" 

また、私は+でパスを構築に対してお勧めする、のための組み込み関数がありますその:

System.IO.Path.Combine(desktopPath, filename);  
// or if you have another folder for those files 
System.IO.Path.Combine(desktopPath, "FolderX", filename); 
0

だけダッシュスラッシュを置き換えます

DateTime.Now.ToString().Replace("/", "-"); 
関連する問題