2012-02-20 16 views
2

私は、保存ボタンに次のコードを追加しました:勝利フォーム:SaveFileDialog

if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
{     
    FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create); 
    StreamWriter writer = new StreamWriter(fs); 
    writer.Write(twexit.Text);  // twexit is previously created 
    writer.Close(); 
    fs.Close(); 
} 

を、私は、ファイルの名前を入力し、[保存]をクリックすると、それはファイルが存在しないことを言います。私はそれが存在しないことを知っているが、私はFileMode.Createを設定する。だから、それが存在しなければ、ファイルを作成すべきではないのですか?

+0

このコードを使用します。私はそれを自分でテストしたし、それは動作します。 – Jordan

答えて

4

CheckFileExistsにはSaveFileDialogがあり、選択したファイルが存在しない場合はダイアログにそのメッセージが表示されます。これをfalseのままにしておく必要があります(これがデフォルト値です)。このような

+0

それは働いた。ありがとうございました。 – Shibli

0

用途:

 SaveFileDialog dlg = new SaveFileDialog(); 

     dlg.Filter = "csv files (*.csv)|*.csv"; 
     dlg.Title = "Export in CSV format"; 

     //decide whether we need to check file exists 
     //dlg.CheckFileExists = true; 

     //this is the default behaviour 
     dlg.CheckPathExists = true; 

     //If InitialDirectory is not specified, the default path is My Documents 
     //dlg.InitialDirectory = Application.StartupPath; 

     dlg.ShowDialog(); 
     // If the file name is not an empty string open it for saving. 
     if (dlg.FileName != "") 

     //alternative if you prefer this 
     //if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK 
      //&& dlg.FileName.Length > 0) 

     { 
      StreamWriter streamWriter = new StreamWriter(dlg.FileName); 
      streamWriter.Write("My CSV file\r\n"); 
      streamWriter.Write(DateTime.Now.ToString()); 
      //Note streamWriter.NewLine is same as "\r\n" 
      streamWriter.Write(streamWriter.NewLine); 
      streamWriter.Write("\r\n"); 
      streamWriter.Write("Column1, Column2\r\n"); 
      //… 
      streamWriter.Close(); 
     } 

     //if no longer needed 
     //dlg.Dispose(); 
+0

空文字列のファイル名をチェックする理由を説明できますか?私は知っているから、あなたはダイアログをキャンセルすることができますが、実際にファイル名を入れないで保存ボタンをクリックすることはできません – Dementic

+0

また、あなたはダイアログの結果を確認していないようです。 – Dementic

1

あなたは、単にこれを使用することができます:

File.WriteAllText(saveFileDialog1.FileName, twexit.Text); 

の代わりに、ストリームと多くのコード。新しいファイルを作成するか上書きします。 FileはSystem.Ioのクラスです。ファイルが存在する場合は、あなたが言いたい場合は、仕事をしなければならない

File.Exist(filePath) 

さようなら

関連する問題