Первый неабстрактный тип, связанный с вводом-выводом, который мы исследуем здесь —
DirectoryInfo
. Этот класс содержит набор членов, используемых для создания, перемещения, удаления и перечисления каталогов и подкаталогов. В дополнение к функциональности, предоставленной его базовым классом (
FileSystemInfо
), класс
DirectoryInfo
предлагает ключевые члены, описанные в табл. 20.3.
Работа с типом
DirectoryInfo
начинается с указания отдельного пути в параметре конструктора. Если требуется получить доступ к текущему
рабочему каталогу (каталогу выполняющегося приложения), то следует применять обозначение в виде точки (
.
). Вот некоторые примеры:
// Привязаться к текущему рабочему каталогу.
DirectoryInfo dir1 = new DirectoryInfo(".");
// Привязаться к C:\Windows, используя дословную строку.
DirectoryInfo dir2 = new DirectoryInfo(@"C:\Windows");
Во втором примере предполагается, что путь, передаваемый конструктору (
С:\Windows
), уже существует на физической машине. Однако при попытке взаимодействия с несуществующим каталогом генерируется исключение
System.IO.DirectoryNotFoundException
. Таким образом, чтобы указать каталог, который пока еще не создан, перед работой с ним понадобится вызвать метод
Create
:
// Привязаться к несуществующему каталогу, затем создать его.
DirectoryInfo dir3 = new DirectoryInfo(@"C:\MyCode\Testing");
dir3.Create;
Синтаксис пути, используемый в предыдущем примере, ориентирован на Windows. Если вы разрабатываете приложения .NET Core для разных платформ, тогда должны применять конструкции
Path.VolumeSeparatorChar
и
Path.DirectorySeparatorChar
, которые будут выдавать подходящие символы на основе платформы. Модифицируйте предыдущий код, как показано ниже:
В дополнение к получению базовых сведений о существующем каталоге текущий пример можно расширить, чтобы задействовать некоторые методы типа
DirectoryInfо
. Первым делом мы используем метод
GetFiles
для получения информации обо всех файлах
*.jpg
, расположенных в каталоге
С:\Windows\Web\Wallpaper
.
На заметку! Если вы не работаете на машине с Windows, тогда модифицируйте код, чтобы читать файлы в каком-нибудь каталоге на вашей машине Не забудьте использовать
Path.VolumeSeparatorChar
и
Path.DirectorySeparatorChar
, сделав код межплатформенным.
Метод
GetFiles
возвращает массив объектов
FileInfo
, каждый из которых открывает доступ к детальной информации о конкретном файле (тип
FileInfo
будет подробно описан далее в главе). Создайте в классе