| Неабстрактный тип класса ввода-вывода | Описание |
|---|---|
| BinaryReader BinaryWriter | Позволяют сохранять и читать примитивные типы данных (целые, логические, строковые и другие), как двоичные значения |
| BufferedStream | Обеспечивает временное хранилище для потока байтов, которые можно будет направить в другое хранилище позже |
| Directory DirectoryInfо | Используются для работы со структурой каталогов машины. Тип Directory предлагает свои функциональные возможности, в основном через |
| DriveInfo | Этот тип (появившийся в .NET 2.0) предлагает подробную информацию о дисках, установленных на машине |
| File FileInfo | Используются для работы с файлами. Тип File предлагает свои функциональные возможности, в основном через |
| FileStream | Позволяет реализовать произвольный доступ к файлам (например, поиск), когда данные представлены в виде потока байтов |
| FileSystemWatcher | Позволяет контролировать изменения внешнего файла |
| MemoryStream | Обеспечивает прямой доступ к данным, сохраненным в памяти, а не в физическом файле |
| Path | Выполняет операции с типами System.String, содержащими информацию о файлах или каталогах в независимом от платформы виде |
| StreamWriter StreamReader | Используются для записи (и чтения) текстовой информации файлов. Эти типы не поддерживают доступ к файлам с произвольной организацией |
| StringWriter StringReader | Подобно типам StreamReader/StreamWriter, эти классы тоже обеспечивают обработку текстовой информации. Однако соответствующим хранилищем в данном случае является строковый буфер, а не физический файл |
Типы Directory(Info) и File(Info)
Пространство System.IO предлагает четыре типа, позволяющие как обработку отдельных файлов, так и взаимодействие со структурой каталогов машины. Первые два из этих типов – Directory и File – с помощью различных статических членов позволяют выполнение операций создания, удаления, копирования и перемещения файлов. Родственные типы FileInfo и DirectoryInfo предлагают аналогичные возможности в виде методов экземпляра (который, таким образом, необходимо будет создать). На рис. 16.1 показана схема зависимости типов, связанных с обработкой каталогов и файлов. Обратите внимание на то, что типы Directory и File расширяют непосредственно System.Object, в то время как DirectoryInfo и FileInfo получаются из абстрактного типа FileSystemInfo.
Рис. 16.1. Типы, обеспечивающие работу с каталогами и файлами
Вообще говоря, FileInfо и DirectoryInfо являются лучшим выбором для рекурсивных операций (таких как, например, составление перечня всех подкаталогов с данным корнем), поскольку члены классов Directory и File обычно возвращает строковые значения, а не строго типизированные объекты.
Абстрактный базовый класс FileSystemInfo