Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpFsWk 228 of 509 menu
◀ ▶

Рекурсивный обход каталога в C#

Утилиты резервного копирования и поиска часто должны видеть все файлы дерева. Метод Directory.EnumerateFiles с параметром SearchOption.AllDirectories спускается во вложенные каталоги.

Маска "*" оставляет все расширения. При необходимости ее сужают до одного типа файлов.

Построим дерево с вложенной папкой и посчитаем файлы. В счёт попадают оба файла, корневой и вложенный:

string root = Path.Combine(Path.GetTempPath(), "walk-delta"); Directory.CreateDirectory(Path.Combine(root, "sub")); File.WriteAllText(Path.Combine(root, "root.txt"), "r"); File.WriteAllText(Path.Combine(root, "sub", "leaf.txt"), "l"); int count = Directory.EnumerateFiles(root, "*", SearchOption.AllDirectories).Count(); Console.WriteLine(count); // выведет 2 Directory.Delete(root, true);

Создайте каталог shop. Внутри него создайте папку orders, а в orders - папку archive. Положите в orders файл order.txt, а в archive файлы old.txt и new.txt. Выведите, сколько файлов видно при обходе всего дерева.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить