Вот альтернативный метод, который работал для меня без необходимости создания объекта DirectoryInfo. Ключевым моментом является то, что GetFileName()
работает, когда в пути нет косой черты.
var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));
Пример:
var list = Directory.EnumerateDirectories(path, "*")
.Select(p => new
{
id = "id_" + p.GetHashCode().ToString("x"),
text = Path.GetFileName(p.TrimEnd(Path.DirectorySeparatorChar)),
icon = "fa fa-folder",
children = true
})
.Distinct()
.OrderBy(p => p.text);