Лучшие способы поиска файлов на c#

#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() помощью, а выполняется со временем по мере выполнения итерации.