Как лучше организовать метод saveFile?
У меня есть метод:
public void saveFileAs() {
using (SaveFileDialog saveFileDialog = new SaveFileDialog()) {
saveFileDialog.Filter = "Текстовые документы (*.txt) | *.txt | Текстовые документы (*.rtf) | *.rtf";
saveFileDialog.DefaultExt = "*.rtf";
saveFileDialog.ShowDialog();
using (StreamWriter sw = new StreamWriter(saveFileDialog.FileName)) {
sw.Write(richTextBox.Text);
}
}
}
Теперь мне нужно организовать метод saveFile(){}, который напишу псевдокодом:
if (до этого файл не сохраняли){
saveFileAs();
} else {
записать текст в тот файл, в который уже сохраняли его
}
Но я не хочу вызывать saveFileDialog еще раз. Как это лучше организовать?
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
if (streamWriter == null) {
saveFileAs();
} else {
streamWriter.Write(richTextBox.Text);
}
И не возвращайте из saveFileAs закрытый StreamWriter.
private string fileName;
public void saveFileAs() {
if (string.IsNullOrEmpty(fileName)) {
using (SaveFileDialog saveFileDialog = new SaveFileDialog()) {
saveFileDialog.Filter = "Текстовые документы (*.txt) | *.txt | Текстовые документы (*.rtf) | *.rtf";
saveFileDialog.DefaultExt = "*.rtf";
if (saveFileDialog.ShowDialog() != DialogResult.OK)
return;
fileName = saveFileDialog.FileName;
}
}
using (StreamWriter sw = new StreamWriter(fileName)) {
sw.Write(richTextBox.Text);
}
}