この順序で、単純な linq クエリを使用していつでもファイルを並べ替えることができます。
string[] textpaths = Directory.GetFiles(filepath + "\\source", "*",
SearchOption.AllDirectories).OrderBy(x=>x).ToArray();
または、 DiretoryInfo.GetFilesを使用して、他の属性を使用して並べ替えることができます。
// Sort by full name
string[] textpaths = new DirectoryInfo("c:\\test").GetFiles("*",
SearchOption.AllDirectories).OrderBy(x=>x.FullName).Select(x=>x.FullName).ToArray();
// Sort by creation time
string[] textpaths = new DirectoryInfo("c:\\test").GetFiles("*",
SearchOption.AllDirectories).OrderBy(x=>x.CreationTime).Select(x=>x.FullName).ToArray();