Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Пространство System.IO предлагает четыре типа, позволяющие как обработку отдельных файлов, так и взаимодействие со структурой каталогов машины. Первые два из этих типов – Directory и File – с помощью различных статических членов позволяют выполнение операций создания, удаления, копирования и перемещения файлов. Родственные типы FileInfo и DirectoryInfo предлагают аналогичные возможности в виде методов экземпляра (который, таким образом, необходимо будет создать). На рис. 16.1 показана схема зависимости типов, связанных с обработкой каталогов и файлов. Обратите внимание на то, что типы Directory и File расширяют непосредственно System.Object, в то время как DirectoryInfo и FileInfo получаются из абстрактного типа FileSystemInfo.

Рис. 16.1. Типы, обеспечивающие работу с каталогами и файлами
Вообще говоря, FileInfо и DirectoryInfо являются лучшим выбором для рекурсивных операций (таких как, например, составление перечня всех подкаталогов с данным корнем), поскольку члены классов Directory и File обычно возвращает строковые значения, а не строго типизированные объекты.
Абстрактный базовый класс FileSystemInfo
Типы DirectoryInfo и FileInfo во многом наследуют свое поведение от абстрактного базового класса FileSystemInfo. По большей части члены класса FileSystemInfo используются для получения общих характеристик (таких как, например, время создания, различные атрибуты и т.д.) соответствующего файла иди каталога. В табл. 16.2 описаны свойства FileSystemInfo, представляющие наибольший интерес.
Таблица 16.2.Свойства FileSystemInfo
Свойство | Описание |
---|---|
Attributes | Читает или устанавливает атрибуты, связанные с текущим файлом, представленным в перечне FileAttributes |
CreationTime | Читает или устанавливает время создания для текущего файла или каталога |
Exists | Может использоваться для выяснения того, существует ли данный файл или каталог |
Extension | Читает расширение файла |
FullName | Получает полный путь каталога или файла |
LastAccesTime | Читает или устанавливает время последнего доступа к текущему файлу или каталогу |
LastWriteTime | Читает или устанавливает время последнего сеанса записи в текущий файл или каталог |
Name | Для файлов получает имя файла. Для каталогов получает имя последнего каталога в иерархии, если такая иерархия существует. Иначе получает имя каталога |
Тип FileSystemInfo определяет также метод Delete(). Этот метод реализуется производными типами для удаления данного файла или каталога с жесткого диска. Кроме того, перед получением информации атрибута может вызываться Refresh(), чтобы гарантировать то, что информация о текущем файле (или каталоге) не будет устаревшей.
Работа с типом DirectoryInfo
Первым из рассматриваемых в нашем обсуждении типов, связанных с реализацией ввода-вывода и допускающих создание экземпляров, будет класс DirectoryInfo. Этот класс предлагает набор членов, используемых для создания, перемещения, удаления и перечисления каталогов и подкаталогов. Кроме функциональных возможностей, обеспеченных базовым классом (FileSystemInfo), класс DirectoryInfo предлагает и свои члены, описанные в табл. 16.3.
Таблица 16.3.Основные члены типа DirectoryInfo
Члены | Описание |
---|---|
Create() CreateSubdirectory() | Создает каталог (или множество подкаталогов) в соответствии с заданным именем пути |
Delete() | Удаляет каталог и все его содержимое |
GetDirectories() | Возвращает массив строк, представляющих все подкаталоги текущего каталога |
GetFiles() | Получает массив типов FileInfo, представляющих множество файлов данного каталога |
MoveTo() | Перемещает каталог и его содержимое в место, соответствующее заданному новому пути |
Parent | Получает каталог родителя указанного пути |
Root | Получает корневую часть пути |
Мы начнем работу с типом DirectoryInfo с попытки указать конкретный путь каталога для использования в качестве параметра конструктора. Чтобы получить доступ к текущему каталогу приложения (т.е. к каталогу приложения, выполняющегося в данный момент), используйте обозначение ".". Вот подходящие примеры.
// Привязка к текущему каталогу приложения.
DirectoryInfo dir1 = new DirectoryInfo(".");
// Привязка к C:\Windows с помощью строки,
// для которой указано "дословное" применение.
DirectoryInfo dir2 = new DirectoryInfo(@"C:\Windows");
Во втором примере предполагается, что передаваемый конструктору путь (путь C:\Windows) уже существует на данной физической машине. Если вы попытаетесь взаимодействовать с несуществующим каталогом, будет сгенерировано исключение System.IO.DirectoryNotFoundException (каталог не найден). Поэтому если вы укажете каталог, который еще не создан, то перед его использованием вам придется сначала вызвать метод Create().
// Привязка к несуществующему каталогу с последующим его созданием.
DirectoryInfo dir3 = new DirectoryInfo(@"C:\Window\Testing");
dir3.Create();
После создания объекта DirectoryInfo вы можете исследовать содержимое соответствующего каталога с помощью свойств, унаследованных от FileSystemInfo. Например, следующий класс создает новый объект DirectoryInfo, связанный с C:\Windows (при необходимости измените этот путь в соответствии с установками системы на вашей машине) и отображающий ряд интересных статистических данных об указанном каталоге (рис. 16.2).
class Program {
static void Main(string[] args) {
Console.WriteLine("* **** Забавы с Directory(Info) *****\n");
DirectoryInfo dir = new DirectoryInfo(@"C:\Windows");
// Информация о каталоге.
Console.WriteLine("***** Информация о каталоге *****");
Console.WriteLine("Полное имя: {0} ", dir.FullName);
Console.WriteLine("Имя: {0} ", dir.Name);
Console.WriteLine("Родитель: {0} ", dir.Parent);
Console.WriteLine("Создан: {0} " , dir.CreationTime);
Console.WriteLine("Атрибуты: {0} ", dir.Attributes);
Console.WriteLine("Корневой каталог: {0}", dir.Root);
Console.WriteLine("********************************\n");
}
}

Рис. 16.2. Информация о каталоге Windows
Перечень FileAttributes
Свойство Attributes, предоставленное объектом FileSystemInfо, обеспечивает получение различной информации о текущем каталоге или файле, и вся она содержится в перечне FileAttributes. Имена полей этого перечня говорят сами за себя, но некоторые менее очевидные имена здесь сопровождаются комментариями (подробности вы найдете в документации .NET Framework 2.0 SDK).
public enum FileAttributes {
ReadOnly,
Hidden,
// Файл, являющийся частью операционной системы или используемый
Интервал:
Закладка: