c# Не получается вытащить названия папок с Directory.GetDirectories(path)

Требуется вытащить только названия папок. Делать рекурсию, возвращать вложенные папки, имена файлов и пути - не нужно.

        private static List<string> AllFolders(string FolderPath)
    {
        List<string> folders = new List<string>();
        foreach (var d in Directory.GetDirectories(FolderPath))
        {
            var dir = new DirectoryInfo(d);
            var dirName = dir.Name;
            folders.Add(dirName);
            Console.WriteLine(folders); 
        }
        Console.WriteLine("folders: ", folders);
        return folders;
    }

Несложная задача, но если надо получить вывод в консоль. Если требуется return то работающих примеров я не видел.

В цикле в консоль выводится то что нужно, при дебаге это тоже видно - folders наполняется. Но итоговый список будет пустым либо вернёт

`Directory.GetDirectories System.Collections.Generic.List`1[System.String]` 

Если вынести список на верхний уровень - результат тот же.

Эту задачу (список через return) вообще можно решить?

И если нет, то как можно ли получить одним списком все папки заданной директории?


Ответы (1 шт):

Автор решения: Aarnihauta

Directory.GetDirectories(path) уже вам возвращает массив который достаточно превратить в список с помощью ToList()

К слову, дебажить в консоли так себе идея. Вы можете делать точки остановки и смотреть значения переменных

private static List<string> GetDirectories(string directory)
{
    return Directory.GetDirectories(directory).ToList();
}
→ Ссылка