Главная страница
Навигация по странице:

  • AppendText() Создает объект StreamWriter и добавляет текст в файл СоруТо()

  • Delete() Удаляет файл, к которому привязан экземпляр FileInfo Directory

  • DirectoryName Получает полный путь к родительскому каталогу Length

  • OpenRead() Создает доступный только для чтения объект FileStream OpenText()

  • FileAccess

  • ReadAllBytes() Открывает указанный файл, возвращает двоичные данные в виде массива байт и затем закрывает файлReadAllLines()

  • ReadAllText() Открывает указанный файл, возвращает символьные данные в виде System.String(), затем закрывает файлWriteAllBytes()

  • Классы File и FileInfo. AppendText() Создает объект StreamWriter и добавляет текст в файл СоруТо()


    Скачать 20.01 Kb.
    НазваниеAppendText() Создает объект StreamWriter и добавляет текст в файл СоруТо()
    Дата20.09.2022
    Размер20.01 Kb.
    Формат файлаdocx
    Имя файлаКлассы File и FileInfo.docx
    ТипДокументы
    #687483

    Классы File и FileInfo

    Класс FileInfo позволяет получать подробности относительно существующих файлов на жестком диске (т.е. время создания, размер и атрибуты) и предназначен для создания, копирования, перемещения и удаления файлов. Вдобавок к набору функциональности, унаследованной от FileSystemInfo, есть некоторые члены, уникальные для класса FileInfo, которые описаны ниже:

    AppendText()

    Создает объект StreamWriter и добавляет текст в файл

    СоруТо()

    Копирует существующий файл в новый файл

    Create()

    Создает новый файл и возвращает объект FileStream для взаимодействия с вновь созданным файлом

    CreateText()

    Создает объект StreamWriter, записывающий новый текстовый файл

    Delete()

    Удаляет файл, к которому привязан экземпляр FileInfo

    Directory

    Получает экземпляр родительского каталога

    DirectoryName

    Получает полный путь к родительскому каталогу

    Length

    Получает размер текущего файла или каталога

    MoveTo()

    Перемещает указанный файл в новое местоположение, предоставляя возможность указать новое имя файла

    Name

    Получает имя файла

    Open()

    Открывает файл с различными привилегиями чтения/записи и совместного доступа

    OpenRead()

    Создает доступный только для чтения объект FileStream

    OpenText()

    Создает объект StreamReader и читает из существующего текстового файла

    OpenWrite()

    Создает доступный только для записи объект FileStream

    Обратите внимание, что большинство методов класса FileInfo возвращают специфический объект ввода-вывода (т.е. FileStream и StreamWriter), который позволяет начать чтение и запись данных в ассоциированный файл в разнообразных форматах.

    Скоро мы рассмотрим эти типы; однако прежде чем увидеть работающий пример, давайте изучим различные способы получения дескриптора файла с использованием класса FileInfo.

    Один из способов создания дескриптора файла предусматривает использование метода FileInfo.Create():

    static void NewFile()

    {

    // Создаем новый файл

    FileInfo f = new FileInfo(@"C:\Test.dat");

    FileStream fs = f.Create();
    // Закрыть файловый поток

    fs.Close();

    }

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

    Также имейте в виду, что после окончания работы с текущим объектом FileStream следует закрыть его дескриптор, чтобы освободить лежащие в основе потока неуправляемые ресурсы.

    С помощью метода FileInfo.Open() можно открывать существующие файлы, а также создавать новые файлы с гораздо более высокой точностью, чем FileInfo.Create(), учитывая, что Open() обычно принимает несколько параметров для описания общей структуры файла, с которым будет производиться работа. В результате вызова Open() получается возвращенный им объект FileStream. Взгляните на следующую логику:

    FileInfo f2 = new FileInfo(@"C:\Test1.dat");

    using (FileStream fs2 = f2.Open(FileMode.OpenOrCreate,

    FileAccess.ReadWrite, FileShare.None)) { };

    Эта версия перегруженного метода Open() требует трех параметров. Первый параметр указывает общий тип запроса ввода-вывода (т.е. создать новый файл, открыть существующий файл и дописать в файл), указываемый в виде перечисления FileMode:

    public enum FileMode

    {

    CreateNew,

    Create,

    Open,

    OpenOrCreate,

    Truncate,

    Append

    }

    Второй параметр метода Open() — значение перечисления FileAccess — используется для определения поведения чтения/записи лежащего в основе потока. И, наконец, третий параметр метода Open() — FileShare — указывает, как файл может быть разделен с другими файловыми дескрипторами.

    Хотя метод FileInfo.Open() позволяет получить дескриптор файла довольно гибким способом, в классе FileInfo также предусмотрены для этого члены OpenRead() и OpenWrite(). Как и можно было ожидать, эти методы возвращают объект FileStream, соответствующим образом сконфигурированный только для чтения или только для записи, без необходимости применять различные значения перечислений.

    Еще один член типа FileInfo, связанный с открытием файлов — OpenText(). В отличие от Create(), Open(), OpenRead() и OpenWrite(), метод OpenText() возвращает экземпляр типа StreamReader, а не FileStream.

    Тип File предоставляет функциональность, почти идентичную типу FileInfo, с помощью нескольких статических методов. Подобно FileInfo, тип File поддерживает методы AppendText(), Create(), CreateText(), Open(), OpenRead(), OpenWrite() и OpenText(). Тип File также поддерживает несколько уникальных членов, перечисленных ниже, которые могут значительно упростить процесс чтения и записи текстовых данных:

    ReadAllBytes()

    Открывает указанный файл, возвращает двоичные данные в виде массива байт и затем закрывает файл

    ReadAllLines()

    Открывает указанный файл, возвращает символьные данные в виде массива строк, затем закрывает файл

    ReadAllText()

    Открывает указанный файл, возвращает символьные данные в виде System.String(), затем закрывает файл

    WriteAllBytes()

    Открывает указанный файл, записывает в него байтовый массив и закрывает файл

    WriteAllLines()

    Открывает указанный файл, записывает в него массив строк и закрывает файл

    WriteAllText()

    Открывает указанный файл, записывает в него данные из указанной строки и закрывает файл

    Отсюда вывод: когда необходимо быстро получить файловый дескриптор, тип File сэкономит некоторый объем ввода. Однако преимущество предварительного создания объекта FileInfo связано с возможностью исследования файла с использованием членов абстрактного базового класса FileSystemInfo.


    написать администратору сайта