Я добавляю к ответу Мэтта Брунелла.
string[] directories = myStringWithLotsOfFolders.Split(Path.DirectorySeparatorChar);
string previousEntry = string.Empty;
if (null != directories)
{
foreach (string direc in directories)
{
string newEntry = previousEntry + Path.DirectorySeparatorChar + direc;
if (!string.IsNullOrEmpty(newEntry))
{
if (!newEntry.Equals(Convert.ToString(Path.DirectorySeparatorChar), StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine(newEntry);
previousEntry = newEntry;
}
}
}
}
Это должно дать вам:
"\ сервер"
"\ сервер \ folderName1"
"\ server \ folderName1 \ another name"
"\ server \ folderName1 \ другое имя \ что-то"
"\ server \ folderName1 \ другое имя \ что-то \ другая папка \"
(или отсортируйте полученную коллекцию по строке. Длина каждого значения.