Классе File. Атрибуты файла.
Класс File, как и класс Directory, состоит из общих методов, которым при вызове обычно передается имя файла. Эти методы применяются при копировании, удалении и перемещении файлов. Основные методы класса File перечислены в табл. 9.3. Обратите внимание,– все параметры передаются по значению (в таблице отсутствуют методы класса File, предназначенные для работы с потоками данных, – они будут рассмотрены ниже).
Таблица 9.3. Основные методы класса File.
Метод | Описание |
---|---|
Copy(ByVal sourceFiteName As String,ByVal destFileName As String) | Копирует файл. Существует перегруженная версия метода с третьим логическим параметром overwrite; если этот параметр равен True, существующий файл с заданным именем перезаписывается |
Delete(ByVal path As String) | Удаляет заданный файл. Интересная подробность: если файл не существует, исключение не инициируется (см. описание метода Exists) |
Exists(ByVal path As String) | Возвращает логическую величину, которая показывает, существует ли файл с заданным полным именем |
GetAttributes(ByVal path As String) | Возвращает значение перечисляемого типа FileAttributes с описанием атрибутов файла – архивный, системный и т. д. (о том, как использовать полученный объект, рассказано в следующем разделе) |
GetCreationTime (ByVal path As String) | Возвращает объект даты, содержащий информацию о времени создания файла |
GetLastAccessTime (ByVal path As String) | Возвращает объект даты, содержащий информацию о времени последнего обращения к файлу |
GetLastWriteTime (ByVal path As String) | Возвращает объект даты, содержащий информацию о времени последней записи в файл |
Move(ByVal sourceFileName As String, ByVal destFileName As String) | Перемещает файл (поддерживается возможность перемещения на другой диск) и переименовывает его, если в параметре destFileName указано новое имя |
SetAttributes(ByVal path As String, ByVal fileAttributes As FileAttributes) | Задает атрибуты указанного файла |
Атрибуты файла
Операции с атрибутами файлов и каталогов выполняются достаточно часто, поэтому в .NET Framework был включен удобный класс FileAttribute. Вероятно, правильнее было бы назвать его FileDirectoryAttribute, поскольку все атрибуты относятся не только к файлам, но и к каталогам.
Значения перечисляемого типа обычно объединяются поразрядными операциями, чтобы избежать всевозможных ошибок в программе. Не используйте команды следующего вида:
If File.GetAttributes("c:\foo.txt") = FileAttributes.Readonly Then…
В проверяемом условии не учитывается тот факт, что у файла могут быть установлены и другие атрибуты. Правильная команда должна выглядеть так:
If File.GetAttributes("c:\foo.txt") And FileAttributes.Readonly _ = FileAttributes.Readonly Then…
При необходимости атрибуты объединяются оператором Оr. Пример:
File.SetAttributes("с: \foo.txt". Not (FileAttributes.Archive) Or FileAttributes.Hidden)
Команда назначает атрибуты C:\foo.txt таким образом, что файл становится скрытым (Hidden), а архивный бит (Archive) сбрасывается. Ниже перечислены важнейшие значения этого перечисляемого типа:
- Archive
- Compressed
- Directory
- Encrypted
- Hidden
- Normal (атрибуты не установлены)
- Readonly
- System