Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП ЛР №6.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
248.83 Кб
Скачать

Ввод/вывод в c# (System.Io)

Для операций ввода-вывода служит пространство имен System.IO.

Вот краткий обзор наиболее важных классов и перечислений из этого пространства имен:

» BinaryReader – позволяет читать из файла данные различных типов (целые, вещественные, логические и т. п.)

» BinaryWriter – позволяет записывать в файл данные различных типов (целые, вещественные, логические и т. п.)

» Directory – класс со статическими методами для работы с папками

» DirectoryInfo – класс для работы с некоторой папкой

» File – класс со статическими методами для работы с файлом

» FileInfo – класс для работы с некоторым файлом

» Path – класс для работы с файловыми путями

» Перечисление FileAttributes – атрибуты файла

» Перечисление FileMode – возможные способы открытия файла

» Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.

» FileSystemWatcher – класс для отслеживания изменений в файловой системе

» Перечисление NotifyFilters – параметры, по которым происходит отслеживание изменений в файловой системе

» Перечисление WatcherChangeTypes – какие изменения отслеживаются в файловой системе.

Классы для работы с папками и файлами

Для работы с файлами и папками в пространстве имен System.IO существуют следующие классы:

Directory – содержит ряд статических методов для выполнения различных операций с папками (создание, удаление, проверка существования, получение текущей папки и т. п.).

DirectoryInfo – аналогичен классу Directory, только его методы не статические – для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя папки).

File – содержит ряд статических методов для выполнения различных операций с файлами (создание, удаление, копирование и т. п.).

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

Классы Directory и File яляются непосредственными потомками класса Object, а классы DirectoryInfo и FileInfo – потомками абстрактного класса FileSystemInfo.

Класс Directory

Класс Directory предназначен для работы с папками. Этот класс содержит статические методы для работы с папками (в отличие от класса DirectoryInfo, который содержит аналогичные методы, применяемые для экзампляра класса).

Вот основные методы класса Directory (все они статические):

» CreateDirectory – создает папку с указанным именем.

» Exists – проверяет существование папки с указанным именем.

» Delete – удаляет папку с указанным именем.

» Move – перемещает или переименовывает папку с указанным именем.

А вот пример их употребления:

using System;

//Подключаем необходимое пространство имен.

using System.IO;

namespace constest

{

class Class1

{

...

static void Main(string[] args)

{

//Создаем папку.

Directory.CreateDirectory("C:\\temp");

//Проверка существования папки.

if(Directory.Exists("C:\\temp1"))

{

Console.WriteLine("Папка \"temp1\" существует");

}

else

{

Console.WriteLine("Папка \"temp1\" не существует");

}

if(Directory.Exists("C:\\temp"))

{

Console.WriteLine("Папка \"temp\" существует");

}

else

{

Console.WriteLine("Папка \"temp\" не существует");

}

//Перемещение папки.

Directory.Move( "C:\\temp", "C:\\temp2");

//Удаление папки.

Directory.Delete( "C:\\temp2");

}

}

}

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