Работа с файлами и папками
При разработке реальных приложений обязательным является хранение данных на устройствах внешней памяти для поддержки связи между сеансами работы с приложением. В библиотеке платформы .NET – FCL – имеется пространство имен System. 10 содержащее набор классов для работы с папками (директориями, каталогами) и файлами на внешних устройствах. В это пространство имен включены классы Directory и File, которые содержат методы для создания, удаления, копирования и перемещения папок и файлов с помощью статических методов. С этими классами тесно связаны классы Filelnfo и Directorylnfo, которые содержат аналогичную функциональность, но используют методы экземпляров класса (поэтому для работы с ними должны быть созданы объекты этих классов с помощью операции new). Классы Filelnfo и Directorylnfo являются производными от абстрактного класса FileSystemlnfo. Классы Filelnfo и Directorylnfo лучше использовать для получения всех детальных описаний файлов и папок (например, время их создания, возможности чтения/записи и т. п.), т. к. методы этих классов возвращают строго типизированные объекты. А методы классов Directory и File чаще возвращают простые строковые значения, а не строго типизированные объекты.
Абстрактный базовый класс FileSystemlnfo
Классы Directorylnfo и Filelnfo получают много методов от абстрактного класса FileSystemlnfo. Элементы класса FileSystemlnfo в основном используются для получения общих характеристик (таких, как время создания, различные атрибуты и т. д.) о конкретном файле или папке.
В классе FileSystemlnfo также определен метод Delete(), который реализуется в производных классах для удаления заданной папки или файла с внешнего устройства. А также определен метод Refresh(), вызов которого перед получением информации об атрибутах гарантирует, что эта информация не устарела.
Таблица 9.1
Свойства класса FileSystemlnfo
Свойство |
Описание |
Attributes |
получение или задание атрибутов, связанных с текущим файлом или нанкой, которые представляются в виде перечисления FileAttributes |
CreationTime |
получение или задание времени создания текущего файла или папки |
Exists |
может использоваться для определения того, существует ли заданный файл или папка |
Extension |
получение расширения файла |
FullName |
получение полного пути папки или файла |
LastAccessTime |
получение или задание времени, когда текущая нанка или файл в последний раз использовались |
LastWriteTime |
получение или задание времени, когда в текущую нанку или файл в последний раз выполнялась запись |
Name |
получение имени текущей папки или файла |