Во-первых, что касается списка файлов, можете ли вы получить список и сохранить (кэшировать) результат где-нибудь, чтобы ускорить повторный доступ?Это метод, который мы используем в .NET для получения больших списков файлов (мы используем веб-страницы ASP.NET, поэтому мы просто используем WebCache.Set, но я полагаю, что вы могли бы записать его в текстовый файл, если вам нужно).
Я вижу некоторые неподтвержденные доказательства здесь , что FSO довольно медленен при перечислении большого количества файлов:
Одним из соображений, которые не рассматриваются, является скорость.У меня было небольшое приложение VB, которое использовало FileSystemObject для циклического просмотра файлов в папке.Это заняло ок.5-7 минут, чтобы пройтись по каждому файлу в заданной папке (около 2200 файлов).Когда я переключился на использование команды DIR (), я мог просматривать файлы примерно за 6-10 секунд.Есть также ограничения для DIR (), но фактор скорости был огромным фактором, который шел против FileSystemObject.
Очевидно, что после того, как у вас есть листинг, вы просматриваете его 500 раз за раз со смещением/ размер страницы
РЕДАКТИРОВАТЬ: Я включил пример того, как использовать WScript.Shell, чтобы сделать это из пары статей aspfaq.com, которые я нашел ( 1 | 2 )
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("%COMSPEC% /C dir c:\")
strPResult = objCmd.StdOut.Readall()