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

Последнее обновление: 31.10.2015

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

OpenFileDialog и SaveFileDialog в Windows Forms

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

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        button1.Click += button1_Click;
        button2.Click += button2_Click;
        openFileDialog1.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*";
        saveFileDialog1.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*";
    }
    // сохранение файла
    void button2_Click(object sender, EventArgs e)
    {
        if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
            return;
        // получаем выбранный файл
        string filename = saveFileDialog1.FileName;
        // сохраняем текст в файл
        System.IO.File.WriteAllText(filename, textBox1.Text);
        MessageBox.Show("Файл сохранен");
    }
    // открытие файла
    void button1_Click(object sender, EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
            return;
        // получаем выбранный файл
        string filename = openFileDialog1.FileName;
        // читаем файл в строку
        string fileText = System.IO.File.ReadAllText(filename);
        textBox1.Text = fileText;
        MessageBox.Show("Файл открыт");
    }
}

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

I am new to the OpenFileDialog function, but have the basics figured out. What I need to do is open a text file, read the data from the file (text only) and correctly place the data into separate text boxes in my application. Here’s what I have in my «open file» event handler:

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
    OpenFileDialog theDialog = new OpenFileDialog();
    theDialog.Title = "Open Text File";
    theDialog.Filter = "TXT files|*.txt";
    theDialog.InitialDirectory = @"C:\";
    if (theDialog.ShowDialog() == DialogResult.OK)
    {
        MessageBox.Show(theDialog.FileName.ToString());
    }
}

The text file I need to read is this (for homework, I need to read this exact file), It has an employee number, name, address, wage, and hours worked:

1
John Merryweather
123 West Main Street
5.00 30

In the text file I was given, there are 4 more employees with info immediately after this in the same format. You can see that the employee wage and hours are on the same line, not a typo.

I have an employee class here:

public class Employee
{
    //get and set properties for each 
    public int EmployeeNum { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public double Wage { get; set; }
    public double Hours { get; set; }

    public void employeeConst() //constructor method
    {
        EmployeeNum = 0;
        Name = "";
        Address = "";
        Wage = 0.0;
        Hours = 0.0;
    }

    //Method prologue
    //calculates employee earnings
    //parameters: 2 doubles, hours and wages
    //returns: a double, the calculated salary
    public static double calcSalary(double h, double w)
    {
        int OT = 40;
        double timeandahalf = 1.5;
        double FED = .20;
        double STATE = .075;
        double OThours = 0;
        double OTwage = 0;
        double OTpay = 0;
        double gross = 0; ;
        double net = 0;
        double net1 = 0;
        double net2 = 0;
        if (h > OT)
        {
            OThours = h - OT;
            OTwage = w * timeandahalf;
            OTpay = OThours * OTwage;
            gross = w * h;
            net = gross + OTpay;
        }
        else
        {
            net = w * h;
        }

        net1 = net * FED; //the net after federal taxes
        net2 = net * STATE; // the net after state taxes

        net = net - (net1 + net2);
        return net; //total net
    }
}

So I need to pull the text from that file into my Employee class, then output the data to the correct textbox in the windows forms application. I am having trouble understanding how to do this right. Do I need to use a streamreader? Or is there another, better way in this instance? Thank you.

В программе продемонстрировано использование классов StreamWriter и StreamReader для чтения и записи текстовых файлов. Также в программе использованы элементы управления (компоненты) RichTextBox и OpenFileDialog.


Содержание

  • Условие задачи
  • Выполнение
    • 1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application
    • 2. Разработка формы приложения
    • 3. Элемент управления OpenFileDialog
    • 4. Добавление внутренних переменных в текст приложения
    • 5. Программирование события Load класса формы Form1
    • 6. Импорт пространства имен System.IO
    • 7. Программирование события клика на кнопке button1 («Открыть файл…»)
    • 8. Программирование события изменения текста в компоненте RichTextEdit
    • 9. Программирование события клика на кнопке “Сохранить файл”

Поиск на других ресурсах:

Условие задачи

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

  ⇑

Выполнение

1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application

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

  ⇑

2. Разработка формы приложения

Создать форму как показано на рисунке 1.

На форме размещаются следующие элементы управления:

  • два элемента управления типа Button. Автоматически будут созданы два объекта (экземпляры класса Button) с именами button1 и button2;
  • один элемент управления типа RichTextBox. Автоматически создается объект с именем richTextBox1;
  • элемент управления типа Label. Создается объект с именем label1.

C# Windows Forms. Элементы управления формы приложенияРис. 1. Элементы управления формы приложения

Осуществить настройку элементов управления типа Button следующим образом:

  • в элементе управления button1 свойство Text = “Открыть файл …»;
  • в элементе управления button2 свойство Text = “Сохранить файл».

Настройка формы приложения Form1:

  • свойство Text = “Чтение/запись текстовых файлов”;
  • свойство MaximizeBox = false (кнопка развертывания на весь экран становится неактивной);
  • свойство FormBorderStyle = “Fixed3D”;
  • свойство StartPosition = “CenterScreen”.

Также нужно откорректировать размеры формы и элементов управления на форме приблизительно так, как показано на рисунке 2.

В элементе управления RichTextBox (рис. 3):

  • свойство WordWrap = «false» (перенос длинных строк в пределах границ окна редактора).

Элемент управления RichTextBox представляет собой многострочное редактированное текстовое поле, которое работает с текстом в формате RTF (Rich Text Format – расширенный текстовый формат). Текст формата RTF сохраняет дополнительную служебную информацию, которая управляет свойствами каждого абзаца и изменением шрифта по ходу текста.

C# Windows Forms Форма приложенияРис. 2. Форма приложения после корректировки и настройки свойств

C# Windows Forms Элемент управления RichTextBox

Рис. 3. Элемент управления типа RichTextBox

  ⇑

3. Элемент управления OpenFileDialog

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

Разместить на форме компонент OpenFileDialog (рис. 4).

C# Windows Forms Элемент управления OpenFileDialogРис. 4. Элемент управления OpenFileDialog

  ⇑

4. Добавление внутренних переменных в текст приложения

Для работы программы нужно ввести следующие дополнительные внутренние переменные:

  • f_open – определяет, выбрал ли пользователь файл командой «Открыть файл…»;
  • f_save – определяет, был ли сохранен ранее открытый файл (f_open = true).

Поэтому, в текст модуля “Form1.cs” нужно ввести следующий код:

...

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        bool f_open, f_save; // определяют выбор файла и его сохранение

        public Form1()
        {
            InitializeComponent();
        }
    }
}

...

  ⇑

5. Программирование события Load класса формы Form1

Событие Load возникает в момент загрузки формы сразу после запуска приложения на выполнение. В обработчик события целесообразно включать начальную инициализацию переменных.

В данном случае, начальной инициализации подлежат такие переменные и объекты как f_open, f_save, label1, richTextBox1.

В компоненте label1 будет отображаться путь к выбранному файлу. В компоненте richTextBox1 будет отображаться содержимое (текст) выбранного файла.



Листинг обработчика Form1_Load() события Load загрузки формы следующий:

private void Form1_Load(object sender, EventArgs e)
{
  f_open = false; // файл не открыт
  f_save = false;
  label1.Text = "-";
  richTextBox1.Text = "";
}

  ⇑

6. Импорт пространства имен System.IO

В данной работе для чтения и записи файлов будут использованы возможности классов StreamWriter и StreamReader из библиотеки классов языка C#.

Поэтому, для использования методов этих классов, нужно в начале кода модуля “Form1.cs” добавить строку:

using System.IO;

Таким образом, верхняя часть файла “Form1.cs” имеет вид:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

  ⇑

7. Программирование события клика на кнопке button1 (“Открыть файл…»)

Для вызова стандартного окна Windows выбора файла, пользователь должен выбрать команду «Открыть файл…» (button1). Пример программирования события клика на кнопке button1 подробно описан здесь.

Листинг обработчика button1_Click() события Click кнопки button1, осуществляющей открытие окна выбора файла, следующий:

private void button1_Click(object sender, EventArgs e)
{
  // 1. Открытие окна и проверка, выбран ли файл
  if (openFileDialog1.ShowDialog() == DialogResult.OK)
  {
    // 2. Вывести имя файла на форме в компоненте label1
    label1.Text = openFileDialog1.FileName;

    // 3. Установить флажки f_open и f_save
    f_open = true;
    f_save = false;

    // 4. Прочитать файл в richTextBox1
    // очистить предыдущий текст в richTextBox1
    richTextBox1.Clear();

    // 5. Создать объект класса StreamReader и прочитать данные из файла
    StreamReader sr = File.OpenText(openFileDialog1.FileName);

    // дополнительная переменная для чтения строки из файла
    string line = null;
    line = sr.ReadLine(); // чтение первой строки

    // 6. Цикл чтения строк из файла, если строки уже нет, то line=null
    while (line != null)
    {
      // 6.1. Добавить строку в richTextBox1
      richTextBox1.AppendText(line);

      // 6.2. Добавить символ перевода строки
      richTextBox1.AppendText("\r\n");

      // 6.3. Считать следующую строку
      line = sr.ReadLine();
    }

    // 7. Закрыть соединение с файлом
    sr.Close();
  }
}

Для вызова стандартного окна Windows выбора файла используется метод ShowDialog() компонента openFileDialog1. Выбранный файл сохраняется в свойства FileName объекта openFileDialog.

Для чтения текстового файла используется класс StreamReader, который осуществляет чтение символьных данных из файла. Чтобы создать экземпляр класса StreamReader используется метод OpenText() класса File. Класс File содержит ряд методов, которые хорошо подходят для упрощенного чтения символьных данных.

Чтобы считать строку из файла в программе используется метод ReadLine(), считывающий строку символов из текущего потока и возвращающий данные в виде строки. Если достигнут конец файла, то метод возвращает null.

Чтение строк осуществляется в локальную переменную line.

Чтобы добавить строку к объекту richTextBox1, используется метод AppendText().

  ⇑

8. Программирование события изменения текста в компоненте RichTextEdit

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

В компоненте richTextBox1 есть событие TextChanged, которое вызывается в момент изменения текста в редакторе (рис. 5).

C# Windows Forms Событие TextChanged элемент управлени richTextBox1Рис. 5. Событие TextChanged элемента управления richTextBox1

Обработчик события TextChanged имеет следующий вид:

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
  f_save = false;
}

  ⇑

9. Программирование события клика на кнопке “Сохранить файл

Для сохранения измененного текста в файле нужно выбрать команду «Сохранить файл» (кнопка button2). Для сохранения измененного в richTextBox1 файла используются методы класса StreamWriter.

Листинг обработчика события клика на кнопке button2 следующий:

private void button2_Click(object sender, EventArgs e)
{
  // 1. Проверка, открыт ли файл
  if (!f_open) return;

  // 2. Если файл открыт, то проверка – сохранен ли он
  if (f_save) return;

  // 3. Создание объекта типа StreamWriter и получение строчных данных
  StreamWriter sw = File.CreateText(openFileDialog1.FileName);

  // 4. Чтение строк с richTextBox1 и добавление их в файл
  string line;
  for (int i = 0; i < richTextBox1.Lines.Length; i++)
  {
    // 4.1. Чтение одной строки
    line = richTextBox1.Lines[i].ToString();

    // 4.2. Добавление этой строки в файл
    sw.WriteLine(line);
  }

  // 5. Закрыть объект sw
  sw.Close();
}

Объясним некоторые фрагменты кода.

В обработчике события button2_Click после проверки на наличие открытого файла создается объект (переменная) с именем sw типа StreamWriter.

При создании объекта используется метод CreateText() из типа File, возвращающего экземпляр типа StreamWriter. Имя файла сохраняется в свойстве openFileDialog1.FileName.

Для доступа к введенным строкам компонента richTextBox используется свойство Lines, которое есть массивом строк.

Чтобы добавить одну строку, нужно вызвать метод WriteLine() объекта sw типа StreamWriter.

  ⇑


Связанные темы

  • C#. Пример создания приложения копирования файлов. Класс FileStream
  • Пример разработки приложения демонстрации работы списков и ассоциативных массивов. Классы Dictionary, List, StreamReader

  ⇑


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

In the previous lesson, Other Windows Forms Controls, we took a look at the advanced WinForms
controls. In today’s tutorial, we’re going to take a look at creating menus in
windows form applications and opening files/folders using dialogs. And also how
to use MessageBox. All this using C# .NET.

This control provides a menu bar at the top of the application form. It’s
very easy to use. After adding it to the project, we just set the names and
number of items, as shown in the picture. There’s no need to set anything in the
properties. Then we just double-click each option to set up an action that will
be triggered when the user clicks on the specific option.

Menu strip in C# .NET

ToolStrip is very similar to the previous one,
MenuStrip. However, it does nothing by itself as it only serves for
adding several other controls, e.g. Button, Label,
DropDownButton (which is MenuStrip version of
ComboBox), Separator (used to separate the controls),
and several others. Setting up those controls is very simple, too. We just
double-click the buttons again to write the handler code.

Toolstrip in C# .NET

This control can be found in the tray icon article, it’s here just for
completeness’ sake. It’s basically a menu that appears after clicking on a
certain component.

FolderBrowserDialog

If you want to work with folders in your app, this component is a necessity.
It provides simple and intuitive folder selection. The most important property
is RootFolder, which specifies the default folder when the dialog
is opened. Moreover, if you set e.g. the Documents/ folder as the
RootFolder, it’s possible to select only subfolders of the
Documents/ folder, but you’ll never be able to go up from the
folder. The ShowNewFolderButton then specifies whether it’s allowed
to create new folders.

We open the dialog from the code using the ShowDialog() method,
then we get the selected folder from the SelectedPath property.

After opening the dialog, it’s necessary to ask whether it was closed by
confirmation, otherwise we’d perform the action even if the user closed the
dialog using the Close or the Cancel buttons. The ShowDialog()
method always returns the button by which the dialog was closed.

if (folderBrowseDialog1.ShowDialog() == DialogResult.OK)
{
    string text = folderBrowserDialog1.SelectedPath;
}

C# .NET FolderBrowserDialog

OpenFileDialog

So we’ve discussed opening folders, now it’s time to discuss files. The
procedure is almost the same — we just add the component to the form again. The
InitialDirectory property is worth mentioning, it’s practically the
same property as RootFolder of FolderBrowserDialog.
Multiselect then specifies whether multiple files can be selected.
Again, we open the dialog using the ShowDialog() method, then we
get the selected file using the FileName property.

C# .NET OpenFileDialog

SaveFileDialog

We use this dialog to save files. Among the properties, it’s worth mentioning
FileName, which is the chosen filename, and
InitialDirectory, which is the directory where the dialog will be
located when opened. DefaultExt then specifies the file extension.
OverwritePrompt asks the user whether the file should be
overwritten if it already exists. Title then sets the dialog title.
We open the dialog using the ShowDialog() method again.

In case you want to perform other actions, use events. Specifically, the
FileOk event, that is triggered when the file has been selected
successfully. We get the filename using the FileName property.

private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    File.Create(saveFileDialog1.FileName);
}

C# .NET SaveFileDialog

ColorDialog

As you can see from the title, this control has something to do with colors.
This dialog allows the user to pick a color. Of all the properties, the most
important one is AllowFullOpen, which determines whether it’s
possible to «create» a custom color. The Color property then
determines what color will be the default one when the dialog is opened. As
always, the dialog is opened using the ShowDialog() method.

We then get the color from the Color property. The code below
will fill the form background with the selected color.

if (colorDialog1.ShowDialog() == DialogResult.OK)
{
   this.BackColor = colorDialog1.Color;
}

C# .NET ColorDialog

FontDialog

This dialog is very similar to the one that selects a color. Except here the
user selects a font, as the control name suggests. Just for completeness’ sake
let me say that we open it using the ShowDialog() method. The
MinSize and MaxSize properties are important as these
limits the font size the user can choose for the text (0 is
unlimited). ShowEffect then allows the user to toggle the underline
or strikethrough, and ShowColor to select the font color.

We get the font using the Font property. In case we want to get
the color as well, we must get it separately by using the Color
property. Here’s an sample:

if (fontDialog1.ShowDialog() == DialogResult.OK)
{
   label1.Font = fontDialog1.Font;
   label1.ForeColor = fontDialog1.Color;
   label1.Text = "This is the selected font";
}

C# .NET FontDialog

MessageBox

Although this isn’t a form control, it still deserves its place here. It’s
the pop-up dialog that shows up, for example, when you perform some non-standard
operation, such as emptying the Recycle Bin.

The following code:

MessageBox.Show("This is the main text of the message box", "Window title", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

Results in showing the dialogue below:

C# .NET MessageBox

The first text is the message itself, the second one is the window title, and
MessageBoxButtons specifies the window buttons (we can choose from
OK, OK and Cancel, Yes and No, etc.). MessageBoxIcon specifies the
icon on the left side of the text. Again, there are several options to choose
from. Some parameters can be omitted.

Surely it’d be good to be able to respond to the specific buttons of the
MessageBox, right? Let’s show how to do that.

It’s not a rocket science. We just wrap the code into if with
the == DialogResult.OK ` condition (where `OK is the desired
button). The code in the body of the condition is then performed only when the
specific button is clicked.

Below is an example:

DialogResult dr = MessageBox.Show("Do you really want to delete this item?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
    
}

In the next lesson, Windows Forms Controls For The Fourth Time, we’ll introduce advanced TextBoxes, a timer, and
progressbar.

  • Работа с файлами windows cmd
  • Работа с обновлениями windows 100 процентов висит
  • Работа с контекстным меню windows 10
  • Работа с обновлениями windows 10 сколько длится по времени
  • Работа с файлами windows api