Сортировка по "EmpNo", например, "AAP070127":
string[] sortedFiles = Directory
.GetFiles(fbdialog.SelectedPath, "*", SearchOption.AllDirectories)
.OrderBy(n => Path.GetFileName(n).Split('-')[1])
.ToArray();
Обновление
И без Linq, как вы упомянули, используя C # 2.0.Далее используется пользовательский компаратор для сравнения только кодов «EmpNo» в именах файлов.Решение ожидает, что ваши имена файлов будут правильно сформированы, т. Е. Они будут содержать «EmpNo» в формате имен файлов вашего примера.
[Test]
public void Sort()
{
string[] files = Directory
.GetFiles(fbdialog.SelectedPath, "*", SearchOption.AllDirectories);
Array.Sort(files, new EmpNoFileComparer());
}
private class EmpNoFileComparer : IComparer<string>
{
public int Compare(string x, string y)
{
string empNoX = Path.GetFileName(x).Split('-')[1];
string empNoY = Path.GetFileName(y).Split('-')[1];
return empNoX.CompareTo(empNoY);
}
}