Windows forms как создать файл

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

1

Как создать файл?

13.07.2017, 08:01. Показов 5858. Ответов 13


Студворк — интернет-сервис помощи студентам

Добрый день!

Как создать файл (1.txt) по на житию кнопке и в этом файле уже содержался текст например (123)



0



ViterAlex

8934 / 4846 / 1886

Регистрация: 11.02.2013

Сообщений: 10,246

13.07.2017, 08:06

2

C#
1
File.WriteAllText("1.txt", "123");



0



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

13.07.2017, 10:09

 [ТС]

3

Цитата
Сообщение от ViterAlex
Посмотреть сообщение

C#
1
File.WriteAllText("1.txt", "123");

Спасибо.

Добавлено через 1 час 48 минут
как сохранить файл в указную папке с поля textbox

Добавлено через 9 минут

C#
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
textBox1.Text = dialog.SelectedPath;
}
}
private void button2_Click(object sender, EventArgs e)
{
 File.WriteAllText("1.txt", "123"); //что тут прописать?
}



0



volvo

Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32765 / 21110 / 8139

Регистрация: 22.10.2011

Сообщений: 36,365

Записей в блоге: 8

13.07.2017, 10:10

4

C#
1
File.WriteAllText(textBox1.Text, "123");



0



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

13.07.2017, 10:19

 [ТС]

5

Цитата
Сообщение от volvo
Посмотреть сообщение

C#
1
File.WriteAllText(textBox1.Text, "123");

Как создать файл?



0



OwenGlendower

Администратор

Эксперт .NET

16343 / 12830 / 5062

Регистрация: 17.03.2014

Сообщений: 26,099

Записей в блоге: 1

13.07.2017, 12:33

6

Iliy,

C#
1
File.WriteAllText(Path.Combine(textBox1.Text, "1.txt"), "123");



2



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

13.07.2017, 13:26

 [ТС]

7

Цитата
Сообщение от OwenGlendower
Посмотреть сообщение

C#
1
File.WriteAllText(Path.Combine(textBox1.Text, "1.txt"), "123");

Спасибо



0



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

24.07.2017, 06:44

 [ТС]

8

Как указать путь для создания файла допустим диск D:\

C#
1
File.WriteAllText(Path.Combine(dirName, "3.txt"), "123")



0



Администратор

Эксперт .NET

16343 / 12830 / 5062

Регистрация: 17.03.2014

Сообщений: 26,099

Записей в блоге: 1

24.07.2017, 12:21

9

Iliy, путем присвоения нужного значения переменной dirName.



1



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

24.07.2017, 13:43

 [ТС]

10

Цитата
Сообщение от OwenGlendower
Посмотреть сообщение

переменной dirName

Немного протупил

C#
1
2
3
 string dirName = row.Cells[0].Value.ToString()
               Directory.CreateDirectory(dirName);
               File.WriteAllText(Path.Combine(dirName, "2.txt"), "456");

если можно примером ответ



0



Администратор

Эксперт .NET

16343 / 12830 / 5062

Регистрация: 17.03.2014

Сообщений: 26,099

Записей в блоге: 1

24.07.2017, 13:57

11

Iliy, какое значение находится в первом столбце? Только название каталога?



1



0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

24.07.2017, 14:20

 [ТС]

12

Цитата
Сообщение от OwenGlendower
Посмотреть сообщение

какое значение находится в первом столбце?

Да.



0



OwenGlendower

Администратор

Эксперт .NET

16343 / 12830 / 5062

Регистрация: 17.03.2014

Сообщений: 26,099

Записей в блоге: 1

24.07.2017, 14:25

13

Лучший ответ Сообщение было отмечено Iliy как решение

Решение

Iliy, значит можно так:

C#
1
2
3
string dirName = @"D:\" + row.Cells[0].Value.ToString();
Directory.CreateDirectory(dirName);
File.WriteAllText(Path.Combine(dirName, "2.txt"), "456");

Не по теме:

Цитата
Сообщение от Iliy
Посмотреть сообщение

Цитата
Сообщение от OwenGlendower
Посмотреть сообщение

какое значение находится в первом столбце?

Да.

Умелое цитирование, однако.



1



Iliy

0 / 0 / 1

Регистрация: 22.06.2017

Сообщений: 33

24.07.2017, 14:41

 [ТС]

14

Цитата
Сообщение от OwenGlendower
Посмотреть сообщение

C#
1
string dirName = @"D:" + row.Cells[0].Value.ToString();

Спасибо.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

24.07.2017, 14:41

14

В данном уроке будет рассмотрена работа с XML на языке C#, в частности, создание простого XML-файла и его чтение в Windows Forms и в консольном приложении Visual Studio.

Что такое XML?

XML —  это так называемый язык разметки, который используется для представления иерархических данных и структиуривания передаваемой информации в удобной для программ, приложений и различных систем форме. XML универсален и не зависит от платформы, на которой используется. Как и у любого языка, у него есть свой собственный (но довольно несложный) синтаксис, представленный в основном в виде различных тегов. Внешне он несколько похож на язык гипертекстовой разметки HTML, но если HTML используется для разметки страниц и отображения данных на них, то XML используется для структурирования данных, их сортировки, фильтрации и т.п. Можно даже приписать XML к аналогу баз данных, который не требует СУБД. В особенности XML-файлы хороши в представлении древовидных (иерархических) БД с произвольной длинной ветвей. В большинстве современных реляционных БД реализация подобной структуры далеко не всегда бывает эффективной и удобной, в особенности, когда длина ветвей доходит до десятков элементов.

Ко всему прочему, XML-документ довольно легко создать, для этого не нужно иметь никаких особенных программ и специфического ПО. В самом простом случае можно обойтись даже стандартной программой «Блокнот». А при наличии Visual Studio, предпочтительнее воспользоваться им, так как работа с XML-файлами в нём очень удобна и проста. Кроме того, есть возможность заполнить XML-файл программно, используя, например, консольное приложение Visual Studio.

Как создать XML-файл в Visual Studio вручную

Для начала попробуем создать простенький XML-файл вручную в Visual Studio и в блокноте.

Чтобы создать пустой XML-документ в Visual Studio, следует в окне программы нажать вкладку «Файл», а затем выбрать строки «Создать» и «Файл», как показано на скриншоте:

Создание и чтение XML-файла

Затем в появившемся окне следует выбрать «XML-файл» и нажать кнопку «Открыть».

Создание и чтение XML-файла
Вот и всё, XML-документ создан. Изначально в нём записана лишь одна строка:

<?xml version=«1.0» encoding=«utf-8»?>

Как легко понять, она означает, что созданный файл поддерживает язык XML версии 1.0 и работает с кодировкой UTF-8.

Теперь давайте запишем в него какие-нибудь данные. Например, такие:

<?xml version=«1.0» encoding=«utf-8»?>

<root>

  <Employee name=«Ivan Ivanov»>

    <Age>30</Age>

    <Programmer>True</Programmer>

  </Employee>  

</root>

Теги в XML можно именовать так, как удобно пользователю, что сильно упрощает визуализацию XML-файлов для людей. В данном примере у нас имеются иерархические данные в три ступени. Сначала идёт структура каталога, обозначенная тегами <root></root>. В неё вложен каталог с названием Employee и атрибутом name, которому присвоено значение «Ivan Ivanov». А в этот каталог вложены данные Age и Programmer. Иными словами, у нас теперь в корне структуры данных имеется некоторый сотрудник Иван Иванов, которому 30 лет и который является программистом. Таких сотрудников может быть очень много, как может быть много и атрибутов этих сотрудников, а также атрибутов у атрибутов этих сотрудников и даже атрибутов у атрибутов у атрибутов этих сотрудников.
Примерно так и выглядят XML-файлы. Данный способ создания XML-файла довольно прост и удобен в применении. Если же под рукой не оказалось Visual Studio или другой специализированной программы, то можно обойтись и простым блокнотом.

Как создать XML-файл в блокноте

Создавать какие-либо большие и объемные XML-файлы в блокноте будет довольно затруднительно, есть возможность запутаться и ошибиться во всём обилии тегов и данных, однако создать простенькую базу вполне возможно. Для этого надо лишь открыть Блокнот и просто начать писать. Например, ту же структуру, что и выше:

Создание и чтение XML-файла

В принципе, можно обойтись и без строки о версии XML-языка и без присваивания кодировки, которая создавалась автоматически в примере с Visual Studio выше, но лучше будет записать и её. Чтобы сохранить данный файл правильно, надо при сохранении выбрать «Тип файла» — Все файлы, а к имени файла прибавить расширение .xml. Кроме того, стоит выбрать кодировку «UTF-8».

Создание и чтение XML-файла

Таким образом и создаются XML-файлы вручную.

Как читать XML-файл C#

Давайте попробуем создать программу, которая считывала бы данные из какого-нибудь XML-файла. Мы будем использовать Windows Forms и язык C#.

В конце у нас должно получиться что-то вроде этого:

Создание и чтение XML-файла C#

Но пока что мы создаем проект Windows Forms. Для начала нам нужен сам XML-файл, из-за которого мы и будем делать программу. Давайте создадим его. Для этого щёлкаем  правой кнопкой мыши на проект в обозревателе решений и выбираем строки «Добавить» и «Создать элемент».

Создание и чтение XML-файла

Там мы выбираем XML-файл и называем его.

Создание и чтение XML-файлаФайл создан, теперь надо его заполнить, например так, как показано ниже:

Создание и чтение XML-файла

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

Создание и чтение XML-файла

Итак, наш XML-файл готов. Преступаем к программе.

Для внешней начинки Form1 нам понадобится элемент propertyGrid и ListBox:

Создание и чтение XML-файла

В propertyGrid мы отключили HelpVisible:

Создание и чтение XML-файла
Теперь нам надо создать класс, который будет получать данные из нашего файла. Для создания класса надо правой кнопкой мыши щёлкнуть на проект и выбрать «Добавить» «Класс».

Создание и чтение XML-файла

Называем наш класс как-нибудь, например, Employee и нажимаем кнопку «Добавить».

Затем пишем следующее:

class Employee

    {

        public string Name { get; private set; }

        public int Age { get; private set; }

        public bool Programmer { get; private set; }

Таким образом мы инициализируем свойства, которые будем получать из файла. Для нас это строковая переменная Name, целочисленная Age и логический тип Programmer.В свойствах мы указываем два метода — get (метод для получения данных) и set (метод для чтения данных). Запись { get; private set; } указывает, что данное свойство используется только для чтения данных, но не для их записи.

Далее создаем конструктор экземпляра:

     public Employee(string name, int age, bool programmer)

        {

            Name = name;

            Age = age;

            Programmer = programmer;

        }

        public override string ToString()

        {

            return Name;

        }

   }

Здесь мы присваиваем считанные выше значения новым переменным и возвращаем переменную Name — её значения будут выводиться в ListBox’e.

В классе Employee мы настроили всё, что нам необходимо. Теперь свяжем все части воедино через Form1. Переходим к коду формы. Для начала нам надо создать метод LoadEmployees, который будет загружать данные из XML-документа и через класс Employee выводить полученные данные в ListBox. Как мы помним, из класса Employee возвращается переменная Name, поэтому в ListBox’e у нас и будут выводиться только имена сотрудников, а остальные атрибуты мы выведем в propertyGrid’e.
Сначала нам надо подключить директиву

Именно она помогает работать с XML.

Далее создадим сам метод:

  private void LoadEmployees()

        {

            XmlDocument doc = new XmlDocument();

            doc.Load(«xmltext.xml»);

            foreach(XmlNode node in doc.DocumentElement)

            {

                string name = node.Attributes[0].Value;

                int age = int.Parse(node[«Age»].InnerText);

                bool programmer = bool.Parse(node[«Programmer»].InnerText);

                listBox1.Items.Add(new Employee(name, age, programmer));

            }

        }

Класс XmlDocument указывает на то, что переменная doc будет являться файлом с XML-кодом.

doc.Load, как можно догадаться, указывает на то, что в doc будет загружен XML-файл с именем «xmltext.xml» — это и есть наш файл, который мы создали в самом начале.

Оператор foreach нужен для циклического обращения к элементам коллекции данных, которая в нашем случае представлена базой сотрудников. Запись в скобках этого оператора, грубо говоря, указывает на то, что каждый конкретный узел в нашем файле представлен XML кодом, и именно так его и надо представлять программе.
Далее считываются имя, возраст и причастность к должности программиста. Все данные заносятся по позициям в ListBox.

Для того, чтобы данный метод запускался одновременно с запуском программы, надо добавить запись LoadEmployees() в область кода, показанного ниже:

public Form1()

        {

            InitializeComponent();

            LoadEmployees();

        }

Теперь нам надо сделать так, чтобы при выборе имени в ListBox’e, все данные, включая имя, возраст и определение, является ли человек программистом, выводились в propertyGrid’e. Для этого дважды щёлкаем левой кнопкой мыши на ListBox’e в форме и в появившемся блоке кода пишем:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

        {

            if (listBox1.SelectedIndex != 1)

            {

                propertyGrid1.SelectedObject = listBox1.SelectedItem;

            }

        }

Запись  if (listBox1.SelectedIndex != -1) означает, что если в ListBox’e выбран какой-либо элемент, а в нашем случае, имя сотрудника (элементы в нём нумеруются с нуля: 0,1,2,3 и т.д., -1 означает, что не выбран ни один элемент), то в propertyGrid’e должны вывестись элементы, которые закреплены в ListBox’e за конкретным именем.

Наша программа готова. Исходник программы «Чтение XML файла» на C# можно скачать по ссылке ниже:

Скачать исходник

Как сохранить файл в 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#, с функцией записи в файл и его сохранением.

  • Создано 07.04.2022 10:00:30


  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

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

Для начала в коде формы MainForm.cs добавим переменную-индикатор, которая будет сообщать о том, что в документе произошли какие-либо изменения. Она потребуется для того, чтобы программа понимала, когда можно просто очистить элемент notebox, а когда нужно сперва предложить сохранить изменения в документе. А также создадим переменную, в которую будем записывать путь открытого документа. Это потребуется для функции сохранения открытого документа. Поэтому в коде формы добавим строки:

bool tbChange = false;
string docPath = «»;

Примечание. Важно добавить эти строки вне функций, чтобы у всех элементов формы был к ним доступ. Я добавил их сразу после функции инициализации компонентов формы.

Теперь нажмем дважды на textbox и перейдем в обработчик событий изменения текста в элементе notebox. Запишем туда следующую строку:

tbChange = true;

То есть, теперь если текст документа будет как-то изменяться, наша переменная-индикатор изменит свое значение на True.

Теперь добавим на форму следующие элементы:

  • printDocument1 (printDocument)
  • printDialog1 (printDialog) — в свойствах, в поле «Document» выбираем наш printDocument
  • pageSetupDialog1 (pageSetupDialog) — в свойствах, в поле «Document» выбираем наш printDocument

Они понадобятся нам для обеспечения возможности печати документа, а также настройки параметров печатаемых страниц.

Настройки приложения

Чтобы улучшить удобство использования программы, научим её запоминать изменения в интерфейсе, внесенные пользователем. Для этого открываем свойства проекта и переходим на вкладку параметров (Проект-Свойства-Параметры).

В первый столбец заносим имена параметров, во втором выбираем их тип, в четвертом указываем значение по-умолчанию:

  • programmName — string — Копирайтер+
  • newDocName — string — Новый документ
  • statusStripVisible — bool — True
  • textTransfer — bool — False
  • textFont — System.Drawing.Font — Segoe UI; 9,75pt
  • formWidth — int — 640
  • formHeight — int — 400

Для того чтобы значения применялись и сохранялись, задействуем 2 события формы MainForm.cs: «Load» (Событие при загрузке формы) и «FormClosing» (Событие после нажатия на кнопку закрытия формы, но до самого закрытия).

Код для события Load:

this.Width = Properties.Settings.Default.formWidth;

this.Height = Properties.Settings.Default.formHeight;

notebox.Font = Properties.Settings.Default.textFont;

if (Properties.Settings.Default.statusStripVisible == true)

{ mViewStatusStrip.CheckState = CheckState.Checked; }

else

{ mViewStatusStrip.CheckState = CheckState.Unchecked; }

if (Properties.Settings.Default.textTransfer == true)

{ mFormatTransfer.CheckState = CheckState.Checked; }

else

{ mFormatTransfer.CheckState = CheckState.Unchecked; }

Код для события Closing:

Properties.Settings.Default.formWidth = this.Width;

Properties.Settings.Default.formHeight = this.Height;

Properties.Settings.Default.textTransfer = notebox.WordWrap;

Properties.Settings.Default.textFont = notebox.Font;

Properties.Settings.Default.statusStripVisible = statusStrip.Visible;

Properties.Settings.Default.Save();

Параметры programmName и newDocName здесь не используются. Они понадобятся далее.

FileWorks.cs

Создаем класс для операций с файлами (FileWork.cs). В него мы поместим все методы для работы с файлами, которые будут применяться в коде не 1 раз: создать, открыть, сохранить, сохранить как.

Прописываем необходимые инструкции:

using System;

using System.Collections.Generic;

using System.Linq;

using System.IO;

using System.Windows.Forms;

using System.Text;

Приступаем к созданию методов:

public static void CreateFile(ref TextBox notebox, ref bool tbChange, ref string docPath) // Метод «Создать новый документ»

{

    string newDocName = Properties.Settings.Default.newDocName;

    string programmName = Properties.Settings.Default.programmName;

    notebox.Clear();

    docPath = «»;

    tbChange = false;

    MainForm.ActiveForm.Text = newDocName + » — » + programmName;

}

public static void OpenFile(ref TextBox notebox, ref bool tbChange, ref string docPath) // Метод «Открыть документ»

{

    string programmName = Properties.Settings.Default.programmName;

    OpenFileDialog openDocument = new OpenFileDialog();

    openDocument.Title = «Открыть текстовый документ»;

    openDocument.Filter = «Текстовые файлы (*.txt) |*.txt| Все файлы (*.*)|*.*»;

    if (openDocument.ShowDialog() == DialogResult.OK)

    {

        FileStream file = new FileStream(openDocument.FileName, FileMode.Open, FileAccess.Read);

        StreamReader reader = new StreamReader(file, Encoding.Default);

        notebox.Text = reader.ReadToEnd();

        reader.Close();

        docPath = openDocument.FileName;

        tbChange = false;

        MainForm.ActiveForm.Text = openDocument.SafeFileName + » — » + programmName;

    }

}

public static void SaveFile(ref TextBox notebox, ref bool tbChange, ref string docPath) // Метод «Сохранить документ»

{

    FileStream file = new FileStream(docPath, FileMode.Create, FileAccess.Write);

    StreamWriter writer = new StreamWriter(file, Encoding.Default);

    writer.Write(notebox.Text);

    writer.Close();

    tbChange = false;

}

public static void SaveAsFile(ref TextBox notebox, ref bool tbChange, ref string docPath) // Метод «Сохранить документ как…»

{

    string programmName = Properties.Settings.Default.programmName;

    SaveFileDialog saveAsDocument = new SaveFileDialog();

    saveAsDocument.Title = «Сохранить документ как…»;

    saveAsDocument.FileName = «Текстовый документ»;

    saveAsDocument.Filter = «Текстовые файлы (*.txt) |*.txt| Все файлы (*.*)|*.*»;

    if (saveAsDocument.ShowDialog() == DialogResult.OK) //Если пользователь подтвердил сохранение

    {

        //Создаем файл по пути, выбранному в окне сохранения

        FileStream file = new FileStream(saveAsDocument.FileName, FileMode.Create, FileAccess.Write);

        StreamWriter writer = new StreamWriter(file, Encoding.Default);

        writer.Write(notebox.Text); //записываем содержимое в файл

        writer.Close(); //закрываем поток

        tbChange = false;

        docPath = saveAsDocument.FileName;

        MainForm.ActiveForm.Text = Path.GetFileName(saveAsDocument.FileName) + » — » + programmName;

    }

    else

    {

        tbChange = true;

        return;

    }

}

Теперь можно писать код для самих элементов меню «Файл».

Создать документ

if (tbChange == true)
{
    DialogResult message = MessageBox.Show(«Сохранить текущий документ перед созданием нового?», «Создание документа», MessageBoxButtons.YesNoCancel);
    if (message == DialogResult.Yes)
    {
        if (docPath != «»)
        {
            FileWork.SaveFile(ref notebox, ref tbChange, ref docPath);
            FileWork.CreateFile(ref notebox, ref tbChange, ref docPath);
        }
        else if (docPath == «»)
        {
            FileWork.SaveAsFile(ref notebox, ref tbChange, ref docPath);
            FileWork.CreateFile(ref notebox, ref tbChange, ref docPath);
        }
    }
    else if (message == DialogResult.No)
    {
        FileWork.CreateFile(ref notebox, ref tbChange, ref docPath);
    }
}
else
{
    FileWork.CreateFile(ref notebox, ref tbChange, ref docPath);
}

Открыть документ

if (tbChange == true)
{
    DialogResult message = MessageBox.Show(«Сохранить текущий документ перед открытием нового?», «Открытие документа», MessageBoxButtons.YesNoCancel);
    if (message == DialogResult.Yes)
    {
        if (docPath != «»)
        {
            FileWork.SaveFile(ref notebox, ref tbChange, ref docPath);
            FileWork.OpenFile(ref notebox, ref tbChange, ref docPath);
        }
        else if (docPath == «»)
        {
            FileWork.SaveAsFile(ref notebox, ref tbChange, ref docPath);
            FileWork.OpenFile(ref notebox, ref tbChange, ref docPath);
        }
    }
    else if (message == DialogResult.No)
    {
        FileWork.OpenFile(ref notebox, ref tbChange, ref docPath);
    }
    else
    {
        return;
    }
}
else
{
    FileWork.OpenFile(ref notebox, ref tbChange, ref docPath);
}

Сохранить документ

if (docPath != «»)
{
    FileWork.SaveFile(ref notebox, ref tbChange, ref docPath);
}
else
{
    FileWork.SaveAsFile(ref notebox, ref tbChange, ref docPath);
}

Сохранить документ как…

FileWork.SaveAsFile(ref notebox, ref tbChange, ref docPath);

Параметры страницы печати

if (pageSetupDialog.ShowDialog() == DialogResult.OK)

{

    printDocument.DefaultPageSettings = pageSetupDialog.PageSettings;

}

Печать документа

if (printDialog.ShowDialog() == DialogResult.OK)

{

    try

    {

        printDocument.Print();

    }

    catch (Exception)

    {

        MessageBox.Show(«Ошибка параметров печати.», «Ошибка», MessageBoxButtons.OK, MessageBoxIcon.Warning);

    }

}

Выход из программы

Application.Exit();

Стоит предусмотреть ситуацию, когда пользователь мог забыть сохранить документ или кнопка закрытия программы и вовсе была нажата случайно. В таком случае, если документ был изменен, но не сохранен — предложим ему сохранить документ перед закрытием. Для этого добавим в событие MainForm.cs «FormClosing» следующий код:

if (tbChange == true)

{

    DialogResult message = MessageBox.Show(«Сохранить текущий документ перед выходом?», «Выход из программы», MessageBoxButtons.YesNoCancel);

    if (message == DialogResult.Yes)

    {

        if (docPath != «»)

        {

            FileWork.SaveFile(ref notebox, ref tbChange, ref docPath);

            Application.Exit();

        }

        else if (docPath == «»)

        {

            FileWork.SaveAsFile(ref notebox, ref tbChange, ref docPath);

            Application.Exit();

        }

    }

    else if (message == DialogResult.Cancel)

    {

        e.Cancel = true;

    }

}

Открытие документов нашим приложением через функцию «Открыть с помощью»

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

Мы велосипед не изобретали, наша программа простая и работает с распространенными расширениями (текстовые документы). Поэтому нам будет достаточно указать условие, при выполнении которого приложение (во время открытия через него текстового документа) будет автоматически загружать в себя содержимое файла.

В коде MainForm.cs изменяем код:

public MainForm()

{

    InitializeComponent();

}

на:

public MainForm()

{

    InitializeComponent();

    this.Text = Properties.Settings.Default.newDocName + » — » + Properties.Settings.Default.programmName;

}

public MainForm(string fileName) // Открытие программы документом

{

    InitializeComponent();

    if (!string.IsNullOrEmpty(fileName) && File.Exists(fileName))

    {

        try

        {

            string programmName = Properties.Settings.Default.programmName;

            FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read);

            StreamReader reader = new StreamReader(file, Encoding.Default);

            notebox.Text = reader.ReadToEnd();

            reader.Close();

            docPath = fileName;

            tbChange = false;

            this.Text = Path.GetFileName(fileName) + » — » + programmName;

            notebox.Select(0, 0);

        }

        catch (Exception ex)

        {

            MessageBox.Show(ex.Message);

        }

    }

}

После этого заходим в класс Program.cs и меняем строку:

Application.Run(new MainForm());

на:

String[] arguments = Environment.GetCommandLineArgs();
if (arguments.Length >=2)
{
    Application.Run(new MainForm(arguments[1]));
}
else
{
    Application.Run(new MainForm());
}

На этом работа с файлами в нашем текстовом редакторе завершена. В следующей части мы напишем код для правки текста в редакторе.

Работа с файлами в Windows Forms – одна из основных задач при разработке приложений, связанных с обработкой данных. В данной статье мы рассмотрим основные методы и примеры работы с файлами в Windows Forms, которые позволят вам эффективно выполнять операции чтения, записи, удаления и обновления данных.

Основной класс, который отвечает за работу с файлами в Windows Forms – это класс System.IO.File. С помощью его методов вы можете получать информацию о файлах, создавать и удалять файлы, а также читать и записывать данные в файлы. Кроме того, класс System.IO.File содержит ряд дополнительных методов, с помощью которых вы можете работать с директориями и путями к файлам, а также выполнять операции с файлами с использованием различных опций.

Рассмотрим основные методы класса System.IO.File:

Метод File.Exists используется для проверки существования файла. Он принимает в качестве параметра путь к файлу и возвращает значение true, если файл существует, и false в противном случае.

Метод File.Create используется для создания нового файла. Он принимает в качестве параметра путь к файлу и возвращает объект FileStream, с помощью которого можно выполнять операции чтения и записи в созданный файл.

Метод File.ReadAllText используется для чтения данных из файла в виде строки. Он принимает в качестве параметра путь к файлу и возвращает содержимое файла в виде строки.

Метод File.WriteAllText используется для записи данных в файл. Он принимает в качестве параметров путь к файлу и строку, которую необходимо записать в файл.

Приведенные примеры демонстрируют лишь базовые операции работы с файлами в Windows Forms. Однако с помощью этих методов вы сможете выполнять более сложные операции, такие как валидация данных перед записью, обработка исключений при работе с файлами и другие.

Содержание

  1. Работа с файлами Windows Forms: основные методы и примеры
  2. Методы для работы с файлами:
  3. Основные методы для работы с файлами в Windows Forms
  4. Примеры использования методов для работы с файлами в Windows Forms
  5. Чтение и запись файлов в Windows Forms
  6. Операции с директориями в Windows Forms
  7. Открытие и закрытие файлов в Windows Forms

Работа с файлами Windows Forms: основные методы и примеры

Для работы с файлами в Windows Forms используются основные методы класса System.IO.File. Этот класс предоставляет набор статических методов, которые позволяют выполнять различные операции с файлами.

Методы для работы с файлами:

Метод Описание Пример использования
File.Exists Проверяет, существует ли файл по заданному пути bool fileExists = File.Exists(«C:\\example.txt»);
File.ReadAllText Считывает содержимое файла в виде строки string fileContent = File.ReadAllText(«C:\\example.txt»);
File.WriteAllText Записывает заданную строку в файл, перезаписывая предыдущее содержимое File.WriteAllText(«C:\\example.txt», «Hello, World!»);
File.AppendAllText Добавляет заданную строку в файл, не перезаписывая предыдущее содержимое File.AppendAllText(«C:\\example.txt», «Hello, World!»);
File.Copy Копирует файл из одного места в другое File.Copy(«C:\\source.txt», «C:\\destination.txt»);
File.Delete Удаляет файл по заданному пути File.Delete(«C:\\example.txt»);

Это лишь небольшой список методов класса System.IO.File, предназначенных для работы с файлами. Однако, с помощью этих методов вы сможете выполнить основные операции с файловой системой в вашем приложении Windows Forms.

Не забывайте проверять наличие и права доступа к файлам перед выполнением операций над ними. Также, обрабатывайте исключения, которые могут возникнуть при работе с файлами, чтобы ваше приложение было более устойчивым и надежным.

Основные методы для работы с файлами в Windows Forms

1. Метод File.Create()

Метод File.Create() позволяет создать новый файл. Он возвращает объект FileStream, который представляет созданный файл. Пример использования:


FileStream file = File.Create("C:
ewfile.txt");
file.Close();

2. Метод File.WriteAllText()

Метод File.WriteAllText() позволяет записать текстовые данные в файл. Если файл уже существует, он будет перезаписан. Пример использования:


string text = "Пример текста";
File.WriteAllText("C:
ewfile.txt", text);

3. Метод File.ReadAllText()

Метод File.ReadAllText() позволяет прочитать содержимое текстового файла. Он возвращает строку с содержимым файла. Пример использования:


string text = File.ReadAllText("C:
ewfile.txt");

4. Метод File.Exists()

Метод File.Exists() позволяет проверить, существует ли файл. Он возвращает значение true, если файл существует, и false — в противном случае. Пример использования:


bool fileExists = File.Exists("C:
ewfile.txt");

5. Метод File.Delete()

Метод File.Delete() позволяет удалить файл. Пример использования:


File.Delete("C:
ewfile.txt");

Это лишь некоторые из основных методов, которые можно использовать для работы с файлами в Windows Forms. Они позволяют создавать, записывать, читать и удалять файлы в приложении.

Примеры использования методов для работы с файлами в Windows Forms

Windows Forms предоставляет разнообразные методы для работы с файлами, которые облегчают процесс чтения, записи и выделения информации из файлов. Ниже приведены несколько примеров использования таких методов:

1. ReadAllText

Метод ReadAllText из класса File позволяет считать весь текст из указанного файла и сохранить его в виде строки. Например, следующий код считывает содержимое файла «example.txt»:

string filePath = "example.txt";
string fileContent = File.ReadAllText(filePath);

2. WriteLine

Метод WriteLine из класса StreamWriter записывает указанную строку в конец файла. Например, следующий код добавляет строку «Hello, World!» в файл «example.txt»:

string filePath = "example.txt";
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine("Hello, World!");
}

3. Copy

Метод Copy из класса File копирует файл из одного места в другое. Например, следующий код копирует файл «source.txt» в директорию «destination»:

string sourceFilePath = "source.txt";
string destinationDirectory = "destination";
File.Copy(sourceFilePath, Path.Combine(destinationDirectory, Path.GetFileName(sourceFilePath)));

4. Delete

Метод Delete из класса File удаляет указанный файл. Например, следующий код удаляет файл «example.txt»:

string filePath = "example.txt";
File.Delete(filePath);

5. Directory.GetFiles

Метод GetFiles из класса Directory возвращает все файлы в указанной директории и ее поддиректориях. Например, следующий код выводит на консоль все файлы в директории «folder»:

string directoryPath = "folder";
string[] files = Directory.GetFiles(directoryPath);
foreach (string file in files)
{
Console.WriteLine(file);
}

Это лишь некоторые примеры методов для работы с файлами в Windows Forms. Ознакомьтесь с документацией и экспериментируйте с различными методами, чтобы эффективно управлять файлами в ваших приложениях.

Чтение и запись файлов в Windows Forms

Windows Forms предоставляет мощные инструменты для работы с файлами. Вы можете использовать различные методы для чтения и записи файлов в вашем приложении.

Один из основных методов чтения файлов в Windows Forms — это использование класса StreamReader. Этот класс предоставляет удобные методы для чтения текстовых файлов. Например, вы можете использовать методы ReadLine() и ReadToEnd() для построчного и полного чтения файла.

Пример чтения файла с помощью класса StreamReader:

string filePath = "C:\\path\\to\\file.txt";
using (StreamReader sr = new StreamReader(filePath))
{
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}

Для записи файлов в Windows Forms вы можете использовать класс StreamWriter. Этот класс позволяет записывать текстовые данные в файл. Вы можете использовать методы Write() и WriteLine() для записи данных в файл.

Пример записи файла с помощью класса StreamWriter:

string filePath = "C:\\path\\to\\file.txt";
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.WriteLine("Hello, World!");
sw.WriteLine("This is a sample text.");
}

Windows Forms также предоставляет методы для работы с файлами, такими как File.ReadAllLines() и File.WriteAllText(). Эти методы позволяют вам читать и записывать данные в файлы с помощью одного метода, минимизируя количество кода.

Пример чтения и записи файла с использованием методов File.ReadAllLines() и File.WriteAllText():

string filePath = "C:\\path\\to\\file.txt";
string[] lines = File.ReadAllLines(filePath);
foreach (string line in lines)
{
Console.WriteLine(line);
}
string content = "Hello, World!
This is a sample text.";
File.WriteAllText(filePath, content);

Вышеупомянутые методы являются лишь некоторыми из множества методов, предоставляемых Windows Forms для работы с файлами. При работе с файлами важно обрабатывать возможные исключения, такие как FileNotFoundException или IOException, чтобы обеспечить стабильную работу вашего приложения.

Операции с директориями в Windows Forms

Для работы с директориями в Windows Forms используется класс Directory из пространства имен System.IO. Этот класс предоставляет набор статических методов, которые позволяют выполнять различные операции с директориями.

Вот некоторые основные методы класса Directory:

  • CreateDirectory() — создает новую директорию по заданному пути;
  • Move() — перемещает директорию из одного места в другое;
  • Rename() — переименовывает указанную директорию;
  • Delete() — удаляет указанную директорию;
  • Exists() — проверяет, существует ли директория по указанному пути.

Пример использования метода CreateDirectory() для создания новой директории:

string path = "C:\\SomeDirectory";
Directory.CreateDirectory(path);

Пример использования метода Move() для перемещения директории:

string oldPath = "C:\\OldDirectory";
string newPath = "D:\\NewDirectory";
Directory.Move(oldPath, newPath);

Пример использования метода Rename() для переименования директории:

string path = "C:\\SomeDirectory";
string newName = "NewName";
Directory.Move(path, path.Replace(Path.GetFileName(path), newName));

Пример использования метода Delete() для удаления директории:

string path = "C:\\SomeDirectory";
Directory.Delete(path);

Пример использования метода Exists() для проверки существования директории:

string path = "C:\\SomeDirectory";
if (Directory.Exists(path))
{
// директория существует
}
else
{
// директория не существует
}

Таким образом, операции с директориями в Windows Forms позволяют управлять файловой системой, создавать и удалять папки, перемещать и переименовывать директории в приложении.

Открытие и закрытие файлов в Windows Forms

Для открытия файла мы можем воспользоваться классом OpenFileDialog. Данный класс позволяет пользователю выбрать файл на компьютере и получить его путь для дальнейшей обработки. Для этого можно использовать следующий код:


OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    string filePath = openFileDialog.FileName;
    // Дальнейшая обработка выбранного файла
}

В данном примере создается экземпляр класса OpenFileDialog и вызывается его метод ShowDialog, который позволяет открыть диалоговое окно для выбора файла. Если пользователь выбирает файл и нажимает кнопку «OK», то значение свойства DialogResult будет равно DialogResult.OK, и мы можем получить путь к выбранному файлу с помощью свойства FileName.

Для закрытия файла мы можем воспользоваться методом Close у объекта, который представляет открытый файл. Например, если мы открываем файл с помощью класса StreamReader, то для его закрытия можно использовать следующий код:


StreamReader reader = new StreamReader(filePath);
// Дальнейшая обработка файла
reader.Close();

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

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

  • Windows form ссылка на объект не указывает на экземпляр объекта
  • Windows forms как запретить изменять размер окна
  • Windows forms для visual studio 2022
  • Windows forms visual studio mac os
  • Windows forms как создать новую форму