Меню Рубрики

Работа с файлами windows forms с

Раздел 2 Основы работы с файлами и директориями в C#

Глава 1 Использование контролов OpenFileDialog и SaveFileDialog для работы с файлами

Для изучения работы с контролами OpenFileDialog и SaveFileDialog создадим новое решение (подробно о создании проекта решения было раказано в первом разделе книги) или изменим уже ипользованный проект (убрав коды обработчиков событий нажатия кнопок, изменив надписи и картиночки) и поместим на форму контролы RichTextBox, OpenFileDialog и SaveFileDialog. Контролы OpenFileDialog и SaveFileDialog не визуальные и, потому, разместились ниже формы. Проект решения с которым будем работать примет вид, показанный на Рис.1.

Рис.1 Проект решения для работы с OpenFileDialog и SaveFileDialog

Дважды кликнем на форме (вне контролов) и, таким образом, создадим обработчик Form1_Load, который будет вызываться при каждой загрузки формы и который в дальнейшем будем часто использовать для начальной инициализации параметров программы и переменных. В обработчике запишем код очистки RichTextBox:

Обработчик нажатия кнопки 3 оставим прежний:

Параграф 1 Ипользование контрола OpenFileDialog

Основные свойства OpenFileDialog

Свойство AddExtension разрешает или запрещает автоматическое добавление расширение, указанное в свойстве DefaultExt.

Свойство DefaultExt — расширение, принятое по умолчанию для автоматического добавления к имени файла при AddExtension=true.

Свойство CheckFileExists — используется для получения или устанавки значения, указывающего отображать или нет диалоговое окно предупреждения, если пользователь указал в свойстве FileName имя файла, которого не существует в данной директории и нажал кнопку «Oткрыть» при невыбранном кликом мышки файле. При CheckFileExists=true вместо прерывания будет выдано сообщение, что такого файла нет и исключения не вызывается.

На Рис.2 показано окно предупреждение при FileName=a.doc, CheckFileExists=true и нажатии кнопки «Oткрыть» при невыбранном файле.

Рис.2 Окно предупреждения при CheckFileExists=true

Свойство FileName — имя файла по умолчанию для выборки если была нажата кнопка OK и не выбрн кликом мышки файл в окне диалога.

Свойство CheckPatchExists — используется для получения или устанавки значения, указывающего отображать или нет диалоговое окно предупреждения, если пользователь указал в свойстве FileName имя файла с несуществующим именем директории. Окно полностью анлогично показанному на Рис.2., например, при FileName=С:\3\a.doc и не выбранном файле в директории C:\ и нажатии кнопки «Oткрыть» будет выдано сообщение, поазанное на Рис.3. При CheckPatchExists=true вместо прерывания будет выдано только сообщение.

Рис.3 Окно предупреждения при CheckPatchExists=true

Свойство DereferenceLinks — используется для указания контролу что именно возвращпть при выборе файла ссылки — файл по ссылке (true) или файл самой сылки (false).

Свойства Filter, FilterIndex — фильтр для выбираемых файлов и индекс строки, отображаемой в окошечке «Имя файла». Например значение свойства заданного строкой при FilterIndex=1.

позволит выбрать только текстовые файлы в формате rtf или txt. В окошечке «Тип файла» будет только две строки:

а в окошечке «Имя файла» будет отображена первая.

Свойство InitialDirectory — директория, которая выбирается при старте OpenFileDialog.

Свойство MultiSelect — при значении true позволяет выбрать мышкой при нажатой кнопке Shift или Ctrl несколько файлов и сохранить их имена в свойстве FileNames в виде массива строк.

Свойство ReadOnlyChecked — при значении true позволяет открывать команде OpenFile выбранные файлы только в режиме чтения.

Свойство RestoreDirectory — при true диалоговое окно восстанавливает текущий каталог к первоначальному значению если пользователь изменил каталог при поиске файлов, при false — нет.

Свойство работает только если закрыт поток Stream, созданный методом openFileDialog1.OpenFile().

Свойство ShowHelp — при значении true в окне диалога отображается кнопка «Справка».

Свойство ShowReadOnly — при значении true в окне диалога отображается переключатель «Только для чтения».

Свойство Title — заголовок диалогового окна.

Свойство ValidateNames — при true проверяет допустимость имени для файла применительно к Win32. Никакое заданное по умолчанию в этом случае не добавляется.

Отметим, что ве свойcтва могут быть заданы на этапе проектирования и программно — путем присвоения соответствующих значений.

Загрузка содержимого файла с использованием OpenFileDialog

Утановим для OpenFileDialog следующие значения свойств:

Filter — rtf файлы (*.rtf)|*.rtf

Пометим в директорию C:\ какой либо файл в формате .rtf (например который был создан в первом разделе «a.tf») и загрузим его в RichTextBox. Для этого напишем в обработчике нажатия кнопки 1 следующий код:

Ели мы выбрали файл C:\a.rtf, то это имя отобразится в заглавии формы.

Если теперь в войстве FileName запишем a.rtf, то при открытии диалога буковка «a» появляется в окошечке «Имя файла» и можно выполнить загрузку не выбирая мышкой файл, а сразу нажав кнопочку «OK».

Дотаточно в войстве FileName записать a.doc и повторить то, что только что проделали выше, как получим предупреждение об отсутствии файла (см Рис.2) и файл уже придется выбирать кликом мышки (кстати, отетим еще раз, что если утановить войство CheckFileExists в false то получим возбуждение иключения).

Рассмотрим еще один способ, который позволяет загружать фйлы в формате .txt. Добавим на форму контрол TextBox и установим его свойство MultiLine в true, в обработчике Form1_Load допишем строку

а cвойству Filter присвоим значение

В обработчике события нажатия кнопки 1 напишем код для чтения текстовых файлов.

Ели прочитаем текстовый файл в формате .rtf, то увидим уже знакомое нам по первому разделу содержимое файла, а при чтении текстового файла в формате .txt именно текст (см Рис.4).

Рис.4 Чтение файлов в формате .rtf(сле) и.txt(спрва) в ткстовом режиме

Параграф 2 Ипользование контрола SaveFileDialog

Основные свойства SaveFileDialog

Следует отметить, что все свойства отображаемые в окне Proporties для SaveFileDialog аналогичны OpenFileDialog и имеют тоже назначение и тот же принцип использования, и, поэтому, в отдельном их расмотрении нет необходимости.

Сохранение информации в файл с использованием SaveFileDialog

Уcтановим для SaveFileDialog следующие значения свойств:

Filter — rtf файлы (*.rtf)|*.rtf|txt файлы(*.txt)|*.txt

Последнее актуально именно для SaveFileDialog и позволяет не задавать в окошечке «имя файла» полное имя если файл будет сохраняться как .rtf файл.

Для обработчика события нажатия кнопки 2 нпишем следующий код:

Источник

Работа с файлами windows forms с

Уроки Windows Forms C++/C#

Открытие и запись текстового файла в MVS C++

В этом уроке будет показан пример создания простого текстового редактора, поэтому обязательно посмотрите предыдущий урок. В данной программе мы будем открывать какой-то уже созданный текстовый файл и редактировать его или же сами писать текст и сохранять его, как новый текстовый файл в нужную вам папку. Ещё один явный признак текстового редактора – это если вы что-то написали и нажимайте крестик чтобы выйти – при этом программа спрашивает: “Сохранить изменения”. Создание такого текстового редактора как раз и будет рассматриваться в этом уроке. Для этого понадобяться следующие элементы: «MenuStrip», «textBox», «openFiledialog», «saveFiledialog». Работа с последними двумя рассматривается в “этом уроке”. Перетащите все эти элементы на форму, назовите заголовок «MenuStrip» «Файл» создайте в нём три пункта: «Открыть», «Сохранить как», «Выход», привяжите «textBox» ко всем сторонам формы, если не знаете включите «Multeline» и «ScrollBars->Vertical», как делать всё выше описанное посмотрите этот урок.Оформление программы:

В коде программы будут созданы «MyReader» и «MyWriter» , с помощью которых программа будет читать и записывать текст в файл. По мимо этого в коде создаётся кодировка, благодаря которой программа будет понимать русский текст. У формы нужно вызвать событие «FormClousing», о том как вызвать событие у элемента рассказывается в этом уроке. Код программы:

#pragma endregion private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) < this->Text = «Текстовый редактор»; openFileDialog1->FileName = «D:\\ВУЗ\\Text2.txt»; openFileDialog1->Filter = «Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*»; saveFileDialog1->Filter = «Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*»; > private: System::Void открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) < openFileDialog1->ShowDialog(); if (openFileDialog1->FileName == nullptr) return; try < auto MyReader = gcnew IO::StreamReader(openFileDialog1->FileName, System::Text::Encoding::GetEncoding(1251)); textBox1->Text= MyReader->ReadToEnd(); MyReader->Close(); > catch (IO::FileNotFoundException^ Ситуация) < MessageBox::Show(Ситуация->Message + «\nФайл не найден», «Ошибка», MessageBoxButtons::OK, MessageBoxIcon::Exclamation); > catch (Exception^ Ситуация) < MessageBox::Show(Ситуация->Message, «Ошибка», MessageBoxButtons::OK, MessageBoxIcon::Exclamation); > > private: System::Void сохранитьКакToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) < saveFileDialog1->FileName = openFileDialog1->FileName; if (saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK) Save(); > void Save() < try < // Создание экземпляра StreamWriter для записи в файл: auto MyWriter = gcnew IO::StreamWriter(saveFileDialog1->FileName, false, System::Text::Encoding::GetEncoding(1251)); MyWriter->Write(textBox1->Text); MyWriter->Close(); textBox1->Modified = false; > catch (Exception^ Ситуация) < MessageBox::Show(Ситуация->Message, «Ошибка», MessageBoxButtons::OK, MessageBoxIcon::Exclamation); > > private: System::Void выходToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) < this->Close(); > private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) < if (textBox1->Modified == false) return; auto MeBox = MessageBox::Show(«Текст был изменён. \nСохранить изменения?», «Простой редактор», MessageBoxButtons::YesNoCancel, MessageBoxIcon::Exclamation); if (MeBox == Windows::Forms::DialogResult::No) return; if (MeBox == Windows::Forms::DialogResult::Cancel) e->Cancel = true; if (MeBox == Windows::Forms::DialogResult::Yes) < if (saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK) < Save(); return; >else e->Cancel = true; > > >; >

Результат: Следующий урок >>

Источник

Работа с файлами windows forms с

Окна открытия и сохранения файла представлены классами 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. После добавления они отобразятся внизу дизайнера формы. В итоге форма будет выглядеть примерно так:

Теперь изменим код формы:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Работа с файлами iso в windows 10
  • Работа с устройствами windows
  • Работа с сертификатами в windows
  • Работа с проводником windows 7 книга
  • Работа с пиктограммами программ windows