Как сохранить файл в C# через Windows Form

Опция сохранения на компьютере распространена повсюду. Бывает что создавая приложение необходимо, чтобы оно обладало данной функцией.
Создание приложения на C# и Windows Form при использовании Visual Studio достаточно простая задача. (ссылка) Но что если нам понадобится вызвать из приложения окно сохранения. И в сегодняшней статье мы создадим простое приложение Windows Form, рассмотрим как записать данные в файл и в конце добавим окно сохранения.

Для начала создадим новое приложение, так как это описано в одной из статей.
Далее вкладка ВИД > панель элементов. Выбираем элемент Button и помещаем его на форму.
Затем добавим один элемент RichTextBox, принимающий пользовательский ввод. Кнопка сохранения будет помещать введенный текст в указанное место на компьютере.

Результат:

Как сохранить файл в C# через Windows Form

Название на кнопке изменено в окне свойств. Правая кнопка > свойства. Находим поле текст.

Дважды щелкаем по элементу Button. В результате получаем обработчик нажатия. Внутри которого объявляется строковая переменная, которой присваивается текст полученный в элементе RichTextBox.
Для простоты выведем его в новое окно через MessageBox.


        private void button1_Click(object sender, EventArgs e)
        {
            string text = richTextBox1.Text;
            MessageBox.Show(text);
        }

Для открытия окна сохранения используем класс SaveFileDialog.

        private void button1_Click(object sender, EventArgs e)
        {
            string text = richTextBox1.Text;
            MessageBox.Show(text);
            SaveFileDialog open = new SaveFileDialog();
            
            // открываем окно сохранения
            open.ShowDialog();
            
            // присваниваем строке путь из открытого нами окна
            string path = open.FileName;
                
                try{
                // создаем файл используя конструкцию using
                
                using(FileStream fs = File.Create(path))
                {
                
                   // создаем переменную типа массива байтов
                   // и присваиваем ей метод перевода текста в байты
                   byte[] info = new UTF8Encoding(true).GetBytes(text);
                   // производим запись байтов в файл
                   fs.Write(info, 0, info.Length);
                   
            
                }
               }
          catch (Exception ex) 
            {
                Console.WriteLine(ex.ToString());
            
            }
                
        }

В данном коде используется конструкция using, для безопасного открытия потока на запись с последующим его закрытием. Данная конструкция автоматизирует освобождение ресурсов памяти.
Таким образом мы создали, простое оконное приложение Windows Form на C#, с функцией записи в файл и его сохранением.

Источник