Ватсон Карли
Шрифт:
В этом разделе мы будем в основном использовать классы
Имеет тот же результат, что и:
Первый фрагмент кода будет выполняться немного дольше, так как он требует создания экземпляра объекта
Для создания экземпляра класса
Если путь доступа представляет объект, который не существует, то исключение будет порождено не во время создания, а в тот момент, когда будет вызван метод, которому потребовался объект соответствующей файловой системы. Можно определить существует ли объект и имеет ли соответствующий тип, проверяя свойство Exists, которое реализовано для обоих этих классов:
Отметим, что для того, чтобы это свойство возвращало
После того, как определено, что соответствующий объект файловой системы существует, можно (если используется класс
Имя | Назначение |
---|---|
CreationTime | Время создания файла или папки. |
DirectoryName(FileInfo) , Parent(DirectoryInfo) | Полный путь доступа содержащей папки. |
Exists | Существует ли файл или папка. |
Extension | Расширение файла. Возвращается пустым для папок. |
FullName | Полное имя пути доступа файла или папки. |
LastAccessTime | Время последнего доступа к файлу или папке. |
LastWriteTime | Время последней модификации файла или папки. |
Name | Имя файла или папки. |
Root | (Только DirectoryInfo .) Корневая часть пути доступа. |
Length | (Только FileInfo .) Возвращает размер файла в байтах. |
Можно также выполнить действия на объекте файловой системы с помощью следующих методов:
Имя | Назначение |
---|---|
Create | Создает папку или пустой файл с заданным именем. Для FileInfo он возвращает также объект потока, чтобы позволить записать в файл. Потоки будут рассмотрены позже. |
Delete | Удаляет файл или папку. Для папок существует вариант рекурсивного метода Delete . |
MoveTo | Перемещает и/или переименовывает файл или папку. |
CopyTo | (Только FileInfo .) Копирует файл. Отметим, что не существует метода копирования для папок. Если копируются все деревья каталогов, то необходимо индивидуально скопировать каждый файл и создать новые папки, соответствующие старым папкам. |
GetDirectories | (Только DirectoryInfo .) Возвращает массив объектов DirectoryInfo , представляющих все папки, содержащиеся в этой папке. |
GetFiles | (Только DirectoryInfo .) Возвращает массив объектов FileInfo , представляющих все папки, содержащиеся в этой папке. |
GetFileSystemObjects | (Только DirectoryInfo .) Возвращает объекты FileInfo и DirectoryInfo , представляющие все объекты, содержащиеся в этой папке, как массив ссылок FileSystemInfo . |
Отметим, что приведенные выше таблицы показывают основные свойства и методы, и не являются исчерпывающими.
В приведенных выше таблицах не перечислены большинство свойств или методов, которые позволяют записывать или читать данные в файлах. Это в действительности делается с помощью потоковых объектов, которые будут рассмотрены позже.
Интересно то, что время создания, время последнего доступа, и время последней записи являются изменяемыми:
Это может показаться странным, но на самом деле достаточно полезно. Например, если имеется программа, которая эффективно модифицирует файл, просто считывая его, затем удаляя его и создавая новый файл с новым содержимым, то будет желательно изменить дату создания, чтобы противопоставить первоначальной дате создания старого файла.