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

SearchOption

SearchOption используют с Directory.EnumerateFiles и Directory.GetFiles. TopDirectoryOnly - только указанный каталог. AllDirectories - и вложенные, например abcde/inner.

Синтаксис

IEnumerable<string> seq = Directory.EnumerateFiles( path, "*.*", SearchOption.AllDirectories);

Пример

Давайте посчитать файлы только в корне abcde:

using System; using System.IO; class Program { static void Main() { Directory.CreateDirectory("abcde/inner"); File.WriteAllText("abcde/abcde.txt", "abcde"); File.WriteAllText("abcde/inner/12345.txt", "12345"); int res = 0; foreach (string _ in Directory.EnumerateFiles( "abcde", "*.*", SearchOption.TopDirectoryOnly)) { res++; } Console.WriteLine(res); Directory.Delete("abcde", true); } }

Результат выполнения кода:

1

Пример

Давайте найти файлы во всех подпапках:

using System; using System.IO; class Program { static void Main() { Directory.CreateDirectory("abcde/inner"); File.WriteAllText("abcde/abcde.txt", "abcde"); File.WriteAllText("abcde/inner/12345.txt", "12345"); int res = 0; foreach (string _ in Directory.EnumerateFiles( "abcde", "*.*", SearchOption.AllDirectories)) { res++; } Console.WriteLine(res); Directory.Delete("abcde", true); } }

Результат выполнения кода:

2

Пример

Давайте сравнить с GetFiles:

using System; using System.IO; class Program { static void Main() { Directory.CreateDirectory("abcde/inner"); File.WriteAllText("abcde/abcde.txt", "abcde"); File.WriteAllText("abcde/inner/12345.txt", "12345"); int lazy = 0; foreach (string _ in Directory.EnumerateFiles( "abcde", "*.*", SearchOption.AllDirectories)) { lazy++; } int arr = Directory.GetFiles( "abcde", "*.*", SearchOption.AllDirectories).Length; Console.WriteLine(lazy == arr); Directory.Delete("abcde", true); } }

Результат выполнения кода:

True

Смотрите также

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