Как реализовать сохранение файла С# WinForms
"Сохранить как" нетрудно реализовать, а вот с обычным сохранением без диалогового окна непонятно.
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
// получаем выбранный файл
string filename = saveFileDialog1.FileName;
// сохраняем текст в файл
System.IO.File.WriteAllText(filename, richTextBox1.Text);
MessageBox.Show("Файл сохранен");
}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
// получаем выбранный файл
string filename = openFileDialog1.FileName;
//читаем файл в строку
string fileText = System.IO.File.ReadAllText(filename);
richTextBox1.Text = fileText;
MessageBox.Show("Файл открыт");
}
private void сохранитьToolStripMenuItem1_Click(object sender, EventArgs e)
{
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Достаточно запомнить имя сохраненного или загруженного ранее файла
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFile(true);
}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
savedFileName = openFileDialog1.FileName;
richTextBox1.Text = File.ReadAllText(savedFileName);
MessageBox.Show("Файл открыт");
}
private void сохранитьToolStripMenuItem1_Click(object sender, EventArgs e)
{
SaveFile(false);
}
private string savedFileName;
private void SaveFile(bool saveAs)
{
if (saveAs || savedFileName == null)
{
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
savedFileName = saveFileDialog1.FileName;
}
File.WriteAllText(savedFileName, richTextBox1.Text);
MessageBox.Show("Файл сохранен");
}
Еще советую не использовать русские буквы в названиях переменных, классов и прочих контролов.