#c# #visual-studio-2010 #directory
#c# #visual-studio-2010 #каталог
Вопрос:
Я пишу программу для поиска файлов в определенном каталоге, но, похоже, у меня есть некоторые проблемы с задержкой. Папка, которую я ищу, содержит 500 файлов и около 1000 папок, в которых хранятся эти файлы. Внутри папки может быть папка (2-й УРОВЕНЬ).
Я использую приведенные ниже строки, чтобы захватить все мои файлы.
string location = "C:\Documents and Settings\All Users\Documents\PDFS";
string[] PDFS = Directory.GetFiles(@location, "*pdf", SearchOption.AllDirectories);
Моя текущая настройка — MS Visual C # 2010 Express.
Комментарии:
1. Вы пытались перейти на многопоточность? Параллельный. Для (…) Диск только один, это может быть неоптимизацией, но попытка стоит усилий.
Ответ №1:
Вы можете использовать Directory.EnumerateFiles()
вместо этого, который использует отложенную оценку, поэтому файлы переносятся в память только по мере перебора результатов.
Комментарии:
1. 1. Обратите внимание, что это предполагает, что GetFiles является фактической проблемой производительности вашей программы (вероятно, но вы всегда должны измерять, чтобы подтвердить проблемы с производительностью).
2. Также следует отметить, что та же общая работа все еще должна быть выполнена (плюс немного больше накладных расходов) — это просто не фронтальная загрузка, как с
GetFiles()
помощью, а выполняется со временем по мере выполнения итерации.