Работа с файлами си шарп

Подобно паре Directory/DirectoryInfo для работы с файлами предназначена пара классов File и FileInfo . С их помощью мы можем создавать, удалять, перемещать файлы, получать их свойства и многое другое.

Некоторые полезные методы и свойства класса FileInfo :

CopyTo(path) : копирует файл в новое место по указанному пути path

Create() : создает файл

Delete() : удаляет файл

MoveTo(destFileName) : перемещает файл в новое место

Свойство Directory : получает родительский каталог в виде объекта DirectoryInfo

Свойство DirectoryName : получает полный путь к родительскому каталогу

Свойство Exists : указывает, существует ли файл

Свойство Length : получает размер файла

Свойство Extension : получает расширение файла

Свойство Name : получает имя файла

Свойство FullName : получает полное имя файла

Класс File реализует похожую функциональность с помощью статических методов:

Copy() : копирует файл в новое место

Create() : создает файл

Delete() : удаляет файл

Move : перемещает файл в новое место

Exists(file) : определяет, существует ли файл

Получение информации о файле

Удаление файла

Перемещение файла

Копирование файла

Метод CopyTo класса FileInfo принимает два параметра: путь, по которому файл будет копироваться, и булевое значение, которое указывает, надо ли при копировании перезаписывать файл (если true , как в случае выше, файл при копировании перезаписывается). Если же в качестве последнего параметра передать значение false , то если такой файл уже существует, приложение выдаст ошибку.

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

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали немного о том, что такое модульное тестирование в Visual Studio. В данной статье я бы хотел рассказать о работе с файлами на C#. Всю работу с файлами можно разделить на 2 группы: 1) это работа с файлами, как с элементами файловой системы, например, найти файл, получить список файлов в директории, узнать дату изменения файла, различные его атрибуты, расширение, скопировать или удалить файл, создать новый. 2) это работа с содержимым файла: прочитать файл или записать в него что-нибудь.

Читайте также  Сколько в числе 5009 тысяч сотен десятков

Для выполнения всех этих операций существует несколько классов, расположенных в пространстве имён "System.IO".

Существует 2 класса File и FileInfo, которые предназначены для работы с файлом, как с частью файловой системы. Здесь также есть несколько методов, которые позволяют работать с содержимым файла целиком. В простых случаях (когда размеры файла небольшие, скажем до 1МБ) файл можно полностью прочитать и сохранить в память.

Некоторые методы по работе с файлами:
  • ReadAllText() . Самая простая операция — это прочитать файл целиком. Данный метод является статическим. Здесь в качестве параметра можно указать полный путь к файлу. Когда указываем путь к файлу, не забываем экранировать символ "".
  • ReadAllLines() . Этот статический метод возвращает массив строк, т.е. читает файл построчно.
  • WriteAllText() . Здесь в качестве параметра передаём строку, и эта строка целиком добавляется в файл с перезаписью содержимого файла.
  • AppendAllText() . Здесь содержимое добавляется поверх существующего файла, без его перезаписи.

Ниже приведен пример на эти методы. Для начала подготовим тестовый файл, который заполним названиями городов (Москва, Питер, Казань, Уфа, Стерлитамак). Имя каждого города находится на новой строке. Файл назовем "cities.txt" и расположим его в корне какого-нибудь диска (в моём случае — это диск "E"):

То, что можно сделать с помощью класса "File", можно сделать и с помощью класса "FileInfo", и наоборот. Почему же их два? Методы класса "File" — статические, а методы класса "FileInfo" являются методами объекта. При работе с методами класса "File" первым параметром всегда указывается путь до файла. В случае "FileInfo" — это имя указывается один раз в конструкторе при создании объекта. Если нужно выполнить разовую операцию, то лучше использовать класс "File". В случае работы со многими файлами лучше использовать "FileInfo".

Читайте также  Почему отключается приложение на андроид

Реализуем следующий алгоритм: необходимо вывести все файлы, даты изменения которых старше введенной пользователем даты. Будем рассматривать папку "C:WindowsSystem32". В ней много файлов. Тут нам потребуется получить все файлы этой директории. Забегая вперед скажу, что это можно сделать с помощью метода "GetFiles()" класса "DirectoryInfo".

Протестируйте работу данного скрипта.

Напишем ещё несколько примеров на работу с файлами:

  • Copy — копирование файла.
  • Delete — удаление файла.
  • Exists — проверка существования файла.

В качестве домашнего задания: переделайте последний пример только с использованием класса "FileInfo".

В данной статье вы узнали, как работать с файлами в C#.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.

Си Шарп предоставляет огромные возможности для работы с файлами: чтение, запись, перезапись текста и так далее.

Для того, чтобы работать с файлами, необходимо:

  1. Поключить пространство имен:
    using System.IO;
  2. Использовать класс: File.

В классе File имеются методы, с которыми мы можем работать.

Чтение файла

Чтение файла может быть вызвано несколькими методами:

File .ReadAllLines — считывает с текстового файла все строки и закрывает файл.

File .ReadAllBytes — считывает двоичный файл и записывает результат в массив байтов и закрывает файл.

File .ReadAllText — считывает текстовый файл с заданной кодировкой.

File .ReadLines — считывает строки с заданной кодировкой.

Мы видим некоторые методы, которы выполняют одно и тоже, но выходные данные разные.

Примеры считывания с файла на C#:

byte [] f2 = File .ReadAllBytes( "youtext.txt" );

byte [] f2 = File .ReadAllBytes( "youtext.txt" ); // Метод считывания с файла

Encoding code = Encoding .ASCII;
string f3 = File.ReadAllText( "youtext.txt" , code); // Метод считывания с файла

IEnumerable string > s = File .ReadLines( "youtext.txt" , code); // Метод считывания с файла

Читайте также  Русско чувашский переводчик гугл

Копирование файла

Если вам нужно скопировать текстовый файл, то для этого нужно использовать метод: Copy.

File .Copy — копирует из существующего файла в другой файл. Возможно копировать самого в себя.

File .Copy( "with.txt" , "where.txt" , true); // копирование с возможностью перезаписи.

File .Copy( "with.txt" , "where.txt" , false); // копирование без перезаписи.

Запись в файл

За запись в файл отвечает класс: StreamWriter .

StreamWriter print = new StreamWriter ( "out.txt" , false ); // перезапись в файл

StreamWriter print2 = new StreamWriter ( "out.txt" , true ); // запись в файл с добавлением

Разница только в false и true . Если true значит можно записывать ТОЛЬКО с добавлением, а если false — значит можно перезаписывать.

После того, как объявили массив, можно через методы: WriteLine и Write записывать в файл.

WriteLine — это запись с переводом на новую строку, а Write — это запись без перевода строки.

Close — это метод, который закрывает файл.

StreamWriter print = new StreamWriter ( "out.txt" , false ); // перезапись в файл
print.Write( "Hi! How are You?" );
print.Close();

Полную программу, которая работает с файлами на C# читайте здесь.

Ссылка на основную публикацию
Adblock
detector