Как сохранить файл в c windows form
Окна открытия и сохранения файла представлены классами OpenFileDialog и SaveFileDialog . Они имеют во многом схожую функциональность, поэтому рассмотрим их вместе.
OpenFileDialog и SaveFileDialog имеют ряд общих свойств, среди которых можно выделить следующие:
DefaultExt : устанавливает расширение файла, которое добавляется по умолчанию, если пользователь ввел имя файла без расширения
AddExtension : при значении true добавляет к имени файла расширение при его отсуствии. Расширение берется из свойства DefaultExt или Filter
CheckFileExists : если имеет значение true , то проверяет существование файла с указанным именем
CheckPathExists : если имеет значение true , то проверяет существование пути к файлу с указанным именем
FileName : возвращает полное имя файла, выбранного в диалоговом окне
Filter : задает фильтр файлов, благодаря чему в диалоговом окне можно отфильтровать файлы по расширению. Фильтр задается в следующем формате Название_файлов|*.расширение. Например, Текстовые файлы(*.txt)|*.txt . Можно задать сразу несколько фильтров, для этого они разделяются вертикальной линией |. Например, Bitmap files (*.bmp)|*.bmp|Image files (*.jpg)|*.jpg
InitialDirectory : устанавливает каталог, который отображается при первом вызове окна
Title : заголовок диалогового окна
Отдельно у класса SaveFileDialog можно еще выделить пару свойств:
CreatePrompt : при значении true в случае, если указан не существующий файл, то будет отображаться сообщение о его создании
OverwritePrompt : при значении true в случае, если указан существующий файл, то будет отображаться сообщение о том, что файл будет перезаписан
Чтобы отобразить диалоговое окно, надо вызвать метод ShowDialog() .
Рассмотрим оба диалоговых окна на примере. Добавим на форму текстовое поле textBox1 и две кнопки button1 и button2. Также перетащим с панели инструментов компоненты OpenFileDialog и SaveFileDialog. После добавления они отобразятся внизу дизайнера формы. В итоге форма будет выглядеть примерно так:
Теперь изменим код формы:
По нажатию на первую кнопку будет открываться окно открытия файла. После выбора файла он будет считываться, а его текст будет отображаться в текстовом поле. Клик на вторую кнопку отобразит окно для сохранения файла, в котором надо установить его название. И после этого произойдет сохранение текста из текстового поля в файл.
Как сохранить файл в C# через Windows Form

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

Название на кнопке изменено в окне свойств. Правая кнопка > свойства. Находим поле текст.
Дважды щелкаем по элементу 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#, с функцией записи в файл и его сохранением.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Компонент SaveFileDialog
Компонент находится в списке All Windows Forms палитры компонентов. C помощью этого компонента можно сохранять файл в нужном месте файловой структуры так же, как это делается в Windows. Но файл сам по себе не сохраняется, т. к. компонент дает только путь к будущему месту расположения файла. На пользователе лежит обязанность самому написать участок программы для сохранения файла. Как и в OpenFileDialog , в этом компоненте применяется метод ShowDialog() для открытия диалогового окна в режиме исполнения. Файл можно открыть в режиме чтения/записи, используя метод OpenFile() .
Компонент при добавлении его в форму появляется не в самой форме, а на поддоне, расположенном в нижней части окна дизайнера форм (рис. 11.89).
Перечень свойств SaveFileDialog приведен также на рис. 11.89.
Почти все свойства компонента совпадают со свойствами OpenFileDialog . Отметим только свойство OverwritePrompt , которое (если оно установлено в true ), вызывает появление диалогового окна Save As .
Когда пользователь выбирает имя файла и нажимает на кнопку Save в диалоговом окне, метод ShowDialog() заносит в свойство FileName компонента имя файла и путь к нему. Никакой перезаписи файла при этом не происходит. Отсюда следует, что
Часть II. Приложения Windows Form
для записи файла в необходимое место файловой структуры нужно применять методы сохранения файла. Приведем пример приложения, которое читает текстовый файл, подготовленный с помощью WordPad в Юникоде и переписывает его в другое место под именем, которое мы выбираем в диалоговом окне. Затем файл с целью проверки читается в другое окно. Вид подготовленного файла, формы приложения в режиме дизайна и исполнения показан на рис. 11.90. Текст приложения приводится в листинге 11.25.
Рис. 11.89. Свойства компонента SaveFileDialog
Рис. 11.90. Пример одновременного применения OpenFileDialog и SaveFileDialog
Глава 11. Компоненты, создающие интерфейс между пользователем и приложением
using namespace System;
using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data;
using namespace System::Drawing;
using namespace System::IO; //для ввода/вывода using namespace System::Text;
public ref class Form1 : public System::Windows::Forms::Form
//TODO: Add the constructor code here
/// Clean up any resources being used.
private: System::Windows::Forms::SaveFileDialog^ saveFileDialog1; private: System::Windows::Forms::OpenFileDialog^ openFileDialog1; private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::ListBox^ listBox1; private: System::Windows::Forms::ListBox^ listBox2; private: System::Windows::Forms::Button^ button2; protected:
404 Часть II. Приложения Windows Form
Этот метод открывает текстовый файл, читает все его строки в строку String ^ и закрывает файл. Строки должны отделяться друг от друга разделителем «/»
String ^d, ^b = File::ReadAllText(File);
/*(надо будет выделять по разделителю «/»)*/ lb->Items->Clear();
/*Разборка длинной строки на строки, отделенные друг от друга разделителями*/
int i=b->IndexOf(«/»); //поиск 1-го вхождения подстроки в строку d=b->Substring(0,i);
lb->Items->Add(d); b=b->Substring(i+1,b->Length — d->Length -1);
void SaveToFile(String ^File,ListBox ^lb)
int j=lb->Items->Count; File::Delete(File); for(int i=0; i < j; i++)
/*Чтение строк ChekedListBox в a и формирование длинной строки в b*/ a=lb->Items[i]->ToString();
b+=a->Concat(a,»/»); //добавка разделителя строк
/*Этот метод открывает файл, добавляет к нему строку типа String ^, закрывает файл. Если файл не существует, он создается */
> //for File::AppendAllText(File, b);
/// </summary> System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// Required method for Designer support — do not modify
/// the contents of this method with the code editor.
this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
Глава 11. Компоненты, создающие интерфейс между пользователем и приложением
this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
this->button1 = (gcnew System::Windows::Forms::Button()); this->button2 = (gcnew System::Windows::Forms::Button()); this->listBox1 = (gcnew System::Windows::Forms::ListBox()); this->listBox2 = (gcnew System::Windows::Forms::ListBox()); this->SuspendLayout();
this->saveFileDialog1->Filter = L»Text files (*.*)|*.txt»;
this->openFileDialog1->FileName = L»openFileDialog1″; this->openFileDialog1->Filter = L»Text files (*.*)|*.txt»;
this->button1->Location = System::Drawing::Point(0, 9); this->button1->Name = L»button1″;
this->button1->Size = System::Drawing::Size(90, 40); this->button1->TabIndex = 0;
this->button1->Text = L»Копировать файл»; this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
this->button2->Location = System::Drawing::Point(173, 9); this->button2->Name = L»button2″;
this->button2->Size = System::Drawing::Size(33, 43); this->button2->TabIndex = 1;
this->button2->Text = L»Выход»; this->button2->UseVisualStyleBackColor = true; this->button2->Click += gcnew System::EventHandler(this,
this->listBox1->FormattingEnabled = true; this->listBox1->Location = System::Drawing::Point(0, 58); this->listBox1->Name = L»listBox1″;
this->listBox1->Size = System::Drawing::Size(206, 43); this->listBox1->TabIndex = 2;
Часть II. Приложения Windows Form
this->listBox2->FormattingEnabled = true; this->listBox2->Location = System::Drawing::Point(0, 109);
this->listBox2->Name = L»listBox2″; this->listBox2->Size = System::Drawing::Size(206, 43);
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(207, 164); this->Controls->Add(this->listBox2); this->Controls->Add(this->listBox1); this->Controls->Add(this->button2); this->Controls->Add(this->button1);
this->Name = L»Form1″; this->Text = L»Form1″; this->ResumeLayout(false);
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
//ShowDialog() возвращает имя файла в FileName this->openFileDialog1->ShowDialog();
LoadFromFile(a, this->listBox1); //Загрузка файла в ListBox1
/*Выбор имени и пути для выходного файла
с помощью SaveFileDialog/ Имя файла будет в FileName*/ this->saveFileDialog1->ShowDialog(); a=this->saveFileDialog1->FileName; SaveToFile(a,this->listBox1);
//сохранение файла из Listbox1 //чтение сохраненного файла в ListBox2 this->openFileDialog1->ShowDialog(); a=this->openFileDialog1->FileName; LoadFromFile(a, this->listBox2);
Save File Dialog in C#

This trivial guide is about using the SaveFileDialog class in C# to save the file from your C# app to the Windows file storage.
SaveFileDialog Class in C#
Users can browse the file system and choose which files to save using the SaveFileDialog component. The dialogue box gives back the name and path of the file that the user selected there.
To write the files to the disc, you must write the code.
Steps for Using the SaveFileDialog Class
The first step is to create a Windows Form Application and add a SaveFileDialog control.
Using the SaveFileDialog class in code at run-time or the Forms designer at design-time, we may create a SaveFileDialog control. A SaveFileDialog does not have and is not required to have visual properties like other Windows Forms controls.
- Create SaveFileDialog through code. The code to create a SaveFileDialog is:
The above code will create a SaveFileDialog box object. Now, to display this dialog, we use the ShowDialog method:
- Create SaveFileDialog through Design. Drag and drop a SaveFileDialog control from the Toolbox to a Form in Visual Studio to create a SaveFileDialog control at design time.
The figure below depicts the SaveFileDialog after being dropped by drag and drop onto a Form.
The second step is to set some properties of the SaveFileDialog . There are different properties available that can be used according to your coding requirements.
Setting properties through the Properties Window is the simplest option. The figure below depicts how the Properties window looks.
Different properties can be set in this window. Let’s discuss some of these properties: —
The Initial Directory property specifies the default directory to be opened when the dialog box appears for saving the file. This property can be set from the property window shown above or through the code like this:
The Title property sets the title to be displayed on the dialog box that appears for saving the file:
The filter property on a save file dialogue restricts the kinds of files that can be saved using a save file dialogue. For instance, we can specify the Filter option only to save binary .bin files if you wish users to be restricted to them.
These are some properties that can be set for saving the file. There are numerous others, but we will discuss these important ones in this article.
After you have set the properties, you can write the code to save the file to disc. For this, the OpenFile method is used. This method returns a Stream object that can be used to save the file onto a disc.
Let’s now sum up the complete code here to save a file:
We have written this code on the click event of a button so that when a button is clicked, the save dialog will open. This will generate the following output:

When we click on the Save File button, the following popup dialog box will appear:
You can see in the dialog box that the location is set to the “Documents” Folder, and the file type is set to “Bin files.”
Conclusion
Users can start the Windows Save File Dialog and save files using a SaveFileDialog control. This article discussed using a Windows Save File Dialog and configuring its properties in a Windows Forms application.