Сохранение текущего открытого файла без подсказок - PullRequest
0 голосов
/ 16 января 2012

У меня возникла проблема с сохранением открытого в данный момент файла без появления диалогового окна с вопросом, под каким именем его сохранить.

Чтобы прояснить ситуацию немного подробнее, я открываю файл .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 и загрузить обратно, просто всплывающее окно меня раздражает.

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Объект fileChooser является объектом SaveFileDialog. Вы заставляете это отображаться, вызывая:

DialogResult result = fileChooser.ShowDialog();

Если вы не хотите показывать диалоговое окно, просто пропустите код fileChooser и вместо этого используйте:

string fileName = strAlreadyKnownFileName;
0 голосов
/ 16 января 2012

Сначала я бы сохранил полный путь к открытому файлу в некоторой переменной, скажем:

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);
}
...