Проблемы с производительностью при подсчете файлов с помощью System.IO.Directory.GetFiles () - PullRequest
9 голосов
/ 19 июля 2011

Я использую в программе на C #

System.IO.Directory.GetFiles(dirname, "*.*", System.IO.SearchOption.AllDirectories).Length;

для подсчета количества файлов в каталоге (и его подкаталогах) на общем ресурсе.Я делаю это для многих каталогов внутри цикла.Проблема в том, что после 20-30 вызовов GetFiles(...).Length моя программа внезапно зависает или становится очень медленной.Что может быть причиной этого и как можно решить эту проблему!Есть ли обходные пути?

Ответы [ 2 ]

7 голосов
/ 19 июля 2011

Взгляните на http://www.codeproject.com/KB/files/FastDirectoryEnumerator.aspx. Mybe, эта статья поможет вам.

0 голосов
/ 25 июля 2011

Вы уверены, что не сохраняете результаты предыдущих вызовов, заставляя ваше приложение голодать в памяти? Проверьте распределение памяти для вашего приложения на вкладке процессов диспетчера задач.

...