Перечисление файлов с помощью типа DirectoryInfо
В дополнение к получению базовых сведений о существующем каталоге текущий пример можно расширить, чтобы задействовать некоторые методы типа DirectoryInfо
GetFiles() для получения информации обо всех файлах *.jpg, расположенных в каталоге С:\Windows\Web\Wallpaper.На заметку!
Если вы не работаете на машине с Windows, тогда модифицируйте код, чтобы читать файлы в каком-нибудь каталоге на вашей машине Не забудьте использоватьPath.VolumeSeparatorChar и Path.DirectorySeparatorChar, сделав код межплатформенным.Метод GetFiles()
FileInfo, каждый из которых открывает доступ к детальной информации о конкретном файле (тип FileInfo будет подробно описан далее в главе). Создайте в классе Program следующий статический метод:static void DisplayImageFiles()
{
DirectoryInfo dir = new
DirectoryInfo(@"C:\Windows\Web\Wallpaper");
// Получить все файлы с расширением *.jpg.
FileInfo[] imageFiles =
dir.GetFiles("*.jpg", SearchOption.AllDirectories);
// Сколько файлов найдено?
Console.WriteLine("Found {0} *.jpg files\n", imageFiles.Length);
// Вывести информацию о каждом файле.
foreach (FileInfo f in imageFiles)
{
Console.WriteLine("***************************");
Console.WriteLine("File name: {0}", f.Name // Имя файла
Console.WriteLine("File size: {0}", f.Length); // Размер
Console.WriteLine("Creation: {0}", f.CreationTime); // Время создания
Console.WriteLine("Attributes: {0}", f.Attributes); // Атрибуты
Console.WriteLine("***************************\n");
}
}
Обратите внимание на указание в вызове GetFiles()
SearchOption.AllDirectories обеспечивает просмотр всех подкаталогов корня. В результате запуска приложения выводится список файлов, которые соответствуют поисковому шаблону.Создание подкаталогов с помощью типа DirectoryInfo
Посредством метода DirectoryInfo.CreateSubdirectory()
.), несколькими специальными подкаталогами:static void ModifyAppDirectory()
{
DirectoryInfo dir = new DirectoryInfo(".");
// Создать \MyFolder в каталоге запуска приложения.
dir.CreateSubdirectory("MyFolder");
// Создать \MyFolder2\Data в каталоге запуска приложения.
dir.CreateSubdirectory(
$@"MyFolder2{Path.DirectorySeparatorChar}Data");
}
Получать возвращаемое значение метода CreateSubdirectory()
DirectoryInfo, представляющий вновь созданный элемент. Взгляните на следующую модификацию предыдущего метода:static void ModifyAppDirectory()
{
DirectoryInfo dir = new DirectoryInfo(".");
// Создать \MyFolder в начальном каталоге.
dir.CreateSubdirectory("MyFolder");
// Получить возвращенный объект DirectoryInfo.
DirectoryInfo myDataFolder = dir.CreateSubdirectory(
$@"MyFolder2{Path.DirectorySeparatorChar}Data");
// Выводит путь к ..\MyFolder2\Data.
Console.WriteLine("New Folder is: {0}", myDataFolder);
}