Оказывается метод, который возвращает список директорий (GetDirectories) иногда может их не сортировать. Вроде как это происходит на винтах под FATом. Поэтому если Вы где-то визуализируете список директорий, то рекомендую Вам вставить туда алгоритм ручной сортировки, ибо сделать это легко с помощью Array.Sort:
DirectoryInfo[] dirs = dir.GetDirectories();
//Сортировочка:
Array.Sort(dirs, 0, dirs.Length, new DirectorySort());
Сам принцип сортировки нужно оформить ввиде класса реализующего интерфейс IComparer:
class DirectorySort : System.Collections.IComparer
{
public int Compare(object x, object y)
{
DirectoryInfo d1 = x as DirectoryInfo;
DirectoryInfo d2 = y as DirectoryInfo;
return String.Compare(d1.Name, d2.Name, true, CultureInfo.CurrentCulture);
}
}
Сортировка тут не различает заглавные-прописные буквы и учитывает CurrentCulture.