2012-01-16 10 views
-2

現在開いているファイルを保存せずにダイアログをポップアップして保存する際に問題が発生しました。プロンプトなしで現在開いているファイルを保存する

もう少し明確にするために、私は.txtファイルを開き、それを使用して「保存」をクリックするだけで、「名前を付けて保存」ダイアログボックスをポップアップしなくてもファイルを保存します。

 private void SaveFile() 
    { 
     SaveFileDialog fileChooser = new SaveFileDialog(); 
     fileChooser.Title = "Choose Save Location"; 
     fileChooser.Filter = "Text Files (*.txt)|*.txt"; 

     fileChooser.OverwritePrompt = false; //Removes warning 

     DialogResult result = fileChooser.ShowDialog(); 

     if (result == DialogResult.Cancel) 
     { 
      return; 
     } 

     try 
     { 
      string fileName = fileChooser.FileName; 
      output = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write); 

      fileWriter = new StreamWriter(output); 

      foreach (Employee emp in employee) 
      { 
       fileWriter.WriteLine(emp.Firstname + "," + emp.Lastname + "," + emp.Position + "," + emp.Bmonth + "," + emp.Bday + "," + emp.BYear + "," + emp.Salary + "," + emp.Hiremonth + "," + emp.Hireday + "," + emp.Hireyear); 
      } 

      fileWriter.Close(); 
      output.Close(); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     finally 
     { 
      fileWriter.Close(); 
      output.Close(); 
     } 
    } 

すべては限り.txtファイルに保存し、中に戻ってそれをロードするように、それは私をいらだたちょうどそのポップアップの素晴らしい作品:ここ

は私のコードを保存しています。

+1

、あなたはどのようにスキップについてfileChooserダイアログをすべて保存して保存するだけですか?私は問題を見ていない。 –

+2

具体的には、コードにファイル保存ダイアログが表示されています。あなたがそれをしたくなければ...しないでください。 –

+0

ファイルを開いて変更した場合、ツールバーの[保存]をクリックして保存するだけで、名前を保存するのではなく保存するだけです。 –

答えて

2

fileChooserオブジェクトはSaveFileDialogオブジェクトです。あなたはそれが呼び出すことで表示させている:

DialogResult result = fileChooser.ShowDialog(); 

あなただけfileChooserコードを省略し、代わりに使用し、ダイアログを表示したくない場合は、次の

string fileName = strAlreadyKnownFileName; 
0

私が最初に保存したいです

private string filepath = "path/to/my/file";

は、その後、あなたがすなわちボタンとワットをダブルクリックし、「保存」ボタンを作成し、それを呼び出す必要があります:いくつかの変数で開かれたファイルのフルパスが言うことができます現在開いているファイルにしたいものは何でも保存するには、この単純なコードを儀式:そのような単純な

を...

EDIT:あなたはすでにファイル名を持っている場合

private void SaveFile() 
{ 
    //do your loop and stuff in here and finally write your text to the file using this 
    File.WriteAllText(filepath, yourtexttobesaved); 
} 
関連する問題