Метод GetFileSystemEntries
Directory.GetFileSystemEntries
возвращает string[]: в одном массиве
и файлы, и папки на одном уровне вложенности.
Отдельно файлы даёт
GetFiles,
отдельно каталоги -
GetDirectories.
Есть GetFileSystemEntriesAsync.
Синтаксис
string[] entries = Directory.GetFileSystemEntries(path);
string[] entries = Directory.GetFileSystemEntries(
path, "*", SearchOption.TopDirectoryOnly);
Пример
Давайте получим и файл, и подпапку в
abcde:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde/nested");
File.WriteAllText("abcde/12345.txt", "12345");
string[] res = Directory.GetFileSystemEntries("abcde");
Console.WriteLine(res.Length);
Directory.Delete("abcde", true);
}
}
Результат выполнения кода:
2
Пример
Давайте сравним с длиной списка только файлов:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde/nested");
File.WriteAllText("abcde/12345.txt", "12345");
int all = Directory.GetFileSystemEntries("abcde").Length;
int files = Directory.GetFiles("abcde").Length;
Console.WriteLine(all);
Console.WriteLine(files);
Directory.Delete("abcde", true);
}
}
Результат выполнения кода:
2
1
Пример
Давайте проверим пустую папку:
using System;
using System.IO;
class Program
{
static void Main()
{
Directory.CreateDirectory("abcde");
string[] res = Directory.GetFileSystemEntries("abcde");
Console.WriteLine(res.Length);
Directory.Delete("abcde");
}
}
Результат выполнения кода:
0
Смотрите также
-
метод
GetFiles,
который возвращает только файлы -
метод
GetDirectories,
который возвращает только папки -
метод
EnumerateFiles,
который лениво обходит файлы -
DirectoryNotFoundException,
которое бросают при отсутствии пути