Метод EnumerateDirectories
Directory.EnumerateDirectories
возвращает IEnumerable<string>
с путями к папкам. Массив сразу даёт
GetDirectories.
Файлы этим методом не перечисляют - для
них
EnumerateFiles.
Есть EnumerateDirectoriesAsync.
Синтаксис
IEnumerable<string> seq =
Directory.EnumerateDirectories(path);
Пример
Давайте посчитаем подпапки в abcde:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde/nested");
Directory.CreateDirectory("abcde/other");
int res = 0;
foreach (string _ in Directory.EnumerateDirectories("abcde"))
{
res++;
}
Console.WriteLine(res);
Directory.Delete("abcde", true);
}
}
Результат выполнения кода:
2
Пример
Давайте проверим, что вложенный каталог попадает в перечисление:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde/nested");
bool res = false;
foreach (string dir in Directory.EnumerateDirectories("abcde"))
{
if (dir.EndsWith("nested"))
{
res = true;
}
}
Console.WriteLine(res);
Directory.Delete("abcde", true);
}
}
Результат выполнения кода:
True
Пример
Давайте убедимся, что без подпапок счётчик равен нулю:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde");
int res = 0;
foreach (string _ in Directory.EnumerateDirectories("abcde"))
{
res++;
}
Console.WriteLine(res);
Directory.Delete("abcde");
}
}
Результат выполнения кода:
0
Смотрите также
-
метод
GetDirectories,
который возвращает массив папок -
метод
EnumerateFiles,
который лениво обходит файлы -
метод
CreateDirectory,
который создаёт подкаталоги -
Directory,
класс, где объявлен метод