Программирование >>  Программирование с использованием ajax 

1 ... 242 243 244 [ 245 ] 246 247 248 ... 396


Таблица 24.3. Некоторые статические методы класса Directory

Метод Описание

CreateDirectory () Создает каталог с указанным путем

Delete () Удалят указанный каталог и все файлы внутри него

GetDirectories () Возвращает массив объектов string, представляющих имена

каталогов внутри указанного каталога

GetFiles () Возвращает массив объектов string, представляющих имена

файлов, находящихся в указанном каталоге

GetFileSystemEntries () Возвращает массив объектов string, представляющих имена

файлов и каталогов внутри указанного каталога

Move () Перемещает указанный каталог в новое место. Вы можете специ-

фицировать другое имя папки в его новом местоположении

Класс Filelnfo

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

Filelnfo aFile = new Filelnfo(@ С:\Log.txt );

Поскольку на протяжении настоящей главы вы будете работать со строковым представлением пути файла, а это означает большое количество символов \ в строках, напоминаем, что символ @, предваряющий показанную выгие строку, означает, что эта строка будет интерпретирована как литерал. Поэтому символ \ будет интерпретирован как \, а не как символ начала управляющей последовательности. Без префикса @ понадобилось бы применять \ \ вместо \, чтобы избежать инт£рпретации этого символа как начала управляющей последовательности. В этой главе мы постоянно будем использовать префикс (З со строками.

Вы можете также передать имя каталога конструктору Filelnfo, хотя в практическом смысле это не слишком удобно, поскольку требует инициализации базового класса для Filelnfo, которым является FileSystemlnfo, информацией каталога, но ни один из методов Filelnfo или свойств, относящихся к файлам, не будет использован.

Многие методы, представленные классом Filelnfo, подобны методам класса File, но поскольку File - статический класс, он требует строкового параметра, специфицирующего местоположение файла для каждого вызова метода. Поэтому показанные ниже вызовы делают одно и то же:

Filelnfo aFile = new Fileinfо( Data.txt );

if (aFile.Exists)

Console.WriteLine ( File Exists ); файл существует

if (File.Exists( Data.txt ))

Console.WriteLine( File Exists ); файл существует

В этом коде выполняется проверка существования файла Data. txt. Обратите внимание, что здесь не специфицируется никакой информации о каталоге; это означает, что наличие файла проверяется только в текущем рабочем каталоге. Этот каталог - тот, что содержит приложение, вызвавшее данный код. Чуть позже мы рассмотрим это немного подробнее (в разделе Путевые имена и относительные пути ).



Большинство методов Filelnfo отражают методы File, но на свой лад. В большинстве случаев не имеет значения, какую технику вы предпочтете, тем не менее, следующие критерии могут помочь выбрать более подходящую.

□ Имеет смысл использовать методы статического класса File, если вы осуществляете единственный вызов метода - такой вызов будет быстрее, потому что .NET Framework не нужно проходить процесс создания экземпляра нового объекта с последующим вызовом его метода.

□ Если ваше приложение выполняет несколько операций с файлом, то более оправдано создать экземпляр объекта Filelnfo и пользоваться его методами; это позволит сэкономить время, потому что объект будет уже ссылаться на правильный файл в файловой системе, в то время как статический класс вынужден находить его каждый раз заново.

Класс Filelnfo также предоставляет свойства лежащего в основе файла, часть из которых позволяет выполнять его обновление. Многие из этих свойств унаследованы от FileSysteraInf о и потому применимы как к File, так и к Directory. Свойства класса FileSystemInf о перечислены в табл. 24.4.

Таблица 24.4. Свойства класса FileSystemlnfo

Свойство

Описание

Attributes Получает или устанавливает атрибуты текущего файла или каталога, исполь-

зуя перечисление FileAttnbutes

CreationTime Получает или устанавливает дату и время текущего файла

Extension Извлекает расширение файла. Это свойство доступно только для чтения

Exists Определяет, существует ли файл. Это доступное только для чтения абстракт-

ное свойство, переопределенное в Filelnfo и Directorylnfo

FullName Извлекает полный путь файла. Это свойство доступно только для чтения

LastAccessTime Получает или устанавливает дату и время последнего обращения к текущему файлу

LastWriteTime Получает или устанавливает дату и время последней записи в текущий файл

Name Извлекает полный путь файла. Это доступное только для чтения абстрактное

свойство, переопределенное в Filelnfo и Directorylnfo

Свойства, специфичные для Filelnfo, описаны в табл. 24.5. Таблица 24.5. Свойства класса Filelnfo

Свойство

Описание

Directory Извлекает объект Directorylnfo, представляющий каталог, который содер-

жит текущий файл. Свойство только для чтения

DirectoryName Возвращает путь каталога файла. Свойство только для чтения

isReadOniy Ссылка на атрибут файла только для чтения . Это свойство также доступно

через Attributes

Length Получает размер файла в байтах в виде значения типа long. Свойство только

для чтения



Объект Filelnfo сам по себе не представляет поток. Чтобы прочесть или записать в файл, необходимо создать объект Stream. Объект Filelnfo помогает в этом, предлагая несколько методов, возвращающих экземпляры объектов Stream.

Класс Directorylnfo

Класс Directorylnfo работает точно так же, как класс Filelnfo. Это объект, представляющий отдельный каталог на машине. Подобно классу Filelnfo, многие из вызовов методов дублируются между Directory и Directorylnfo. Все инструкции по выбору между File и Filelnfo также применимы к методам Directorylnfo.

□ Если вы выполняете единственный вызов, используйте класс Directory.

□ Если вы выполняете серию вызовов, используйте экземпляр объекта

Directorylnfo.

Класс Directorylnfo наследует большинство свойств от FileSystemlnfo, как и Filelnfo, хотя эти свойства оперируют каталогами, а не файлами. Есть также два специфичных для Directorylnfo свойства, показанные в табл. 24.6.

Таблица 24.6. Свойства класса Directorylnfo

Свойство Описание

Parent Извлекает объект Directorylnfo, представляющий каталог, который

содержит текущий каталог Свойство только для чтения

Root Извлекает объект Directorylnfo, представляющий корневой каталог

текущего тома, например, с: \ . Свойство только для чтения

Путевые имена и относительные пути

При указании путевого имени в коде .NET вы можете использовать как абсолютные, так и относительные путевые имена. Абсолютный путь явно специфицирует файл или каталог из известного местоположения, такого как привод С:. Примером этого может служить С: \Work\LogFile. txt - этот путь точно определяет местоположение файла, без какой-либо неоднозначности.

Относительные пути определены относительно некоторого начального местоположения. Используя относительные путевые имена, не нужно указывать привод или некоторое известное местоположение. Вы говорите это раньше, указав, что текущий рабочий каталог будет начальной точкой, что является поведением по умолчанию для относительных путевых имен. Например, если приложение запускается в каталоге C:\Development\FileDemo и использует относительный путь LogFile.txt, это указывает на файл С: \Development\FileDemo\LogFile. txt. Чтобы перейти вверх по иерархии каталогов, используется строка . .. Таким образом, путь . . \Log. txt указывает на файл С: \Development\Log. txt.

Как было сказано ранее, рабочий каталог изначально устанавливается там, откуда запущено приложение. Когда вы ведете разработку в Visual Studio или Visual Studio Express, это означает, что приложение находится несколькими каталогами ниже созданной вами папки проекта. Обычно оно располагается в Имя Проекта\Ып\ВеЪид. Чтобы обратиться к файлу в корневой папке проекта, потребуется перейти на два каталога выше, указав префикс пути . . \ . Л - вы не раз встретитесь с этим на протяжении настоящей главы.



1 ... 242 243 244 [ 245 ] 246 247 248 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика