salary = 1000
interest = 0.002 * salary
x = 0
sum_of_yes=0
while x < 12:
yes = 0.15 * salary
salary += interest
x += 1
sum_of_yes+=yes
print sum_of_yes
Вместо того, чтобы делать GetFiles и сделать поиск грубой силы, Вы могли, скорее всего, использовать GetDirectories, сначала чтобы получить список "Первой sub папки", цикл через те каталоги, затем повторить процесс для sub папки, цикличное выполнение через них, наконец искать xml папку и наконец поиск .xml файлы.
Теперь, что касается производительности скорость этого будет варьироваться, но поиск каталогов сначала, ЗАТЕМ добираясь до файлов должен помочь много!
Обновление
Хорошо, я внес свою лепту тестирования, и можно на самом деле оптимизировать его гораздо дальше, чем я думал.
Следующий фрагмент кода будет искать структуру каталогов и находить ВСЕ "xml" папки во всем дереве каталогов.
string startPath = @"C:\Testing\Testing\bin\Debug";
string[] oDirectories = Directory.GetDirectories(startPath, "xml", SearchOption.AllDirectories);
Console.WriteLine(oDirectories.Length.ToString());
foreach (string oCurrent in oDirectories)
Console.WriteLine(oCurrent);
Console.ReadLine();
Если Вы бросите это в тестовое консольное приложение, то Вы будете видеть, что он производит результаты.
Теперь, после того как у Вас есть это, просто посмотрите в каждом из найденных каталогов для Вас .xml файлы.
Есть ли дополнительные каталоги на том же уровне как xml папка? Если так, Вы могли, вероятно, ускорить поиск, если Вы делаете это сами и устраняете тот уровень из поиска.
System.IO.DirectoryInfo root = new System.IO.DirectoryInfo(rootPath);
List<System.IO.FileInfo> xmlFiles=new List<System.IO.FileInfo>();
foreach (System.IO.DirectoryInfo subDir1 in root.GetDirectories())
{
foreach (System.IO.DirectoryInfo subDir2 in subDir1.GetDirectories())
{
System.IO.DirectoryInfo xmlDir = new System.IO.DirectoryInfo(System.IO.Path.Combine(subDir2.FullName, "xml"));
if (xmlDir.Exists)
{
xmlFiles.AddRange(xmlDir.GetFiles("*.xml"));
}
}
}
Я ни о чем не могу думать быстрее в C#, но у Вас есть индексация включенной для той файловой системы?
Только путь I видит, что это имело бы много значения, должен измениться от грубого поиска на силу и использовать некоторое третье лицо или стандартную программу индексации ОС для ускорения возврата. тем путем поиск сделан от строки из Вашего приложения.
Но я также предложил бы, чтобы Вы посмотрели на лучшие способы структурировать те данные если вообще возможный.
Используйте P/Invoke на FindFirstFile
/FindNextFile
/FindClose
и избегайте наверху создания большого количества экземпляров FileInfo.
Но это будет тяжелой работой для разбираний (необходимо будет сделать всю обработку файла по сравнению с каталогом и рекурсией сами). Так попробуйте что-то простое (Каталог. GetFiles (), Каталог. GetDirectories ()), чтобы запуститься с и получить вещи, работающие. Если это - слишком медленный взгляд на альтернативы (но всегда имейте размеры, слишком легкий для создания его медленнее).