Вы можете подумать: хорошо, теперь я знаю, как написать в файл. Но можем ли мы сделать больше? Давайте попробуем создать функцию поиска для веб -сайта.
Ключом к созданию поисковой системы является рекурсия. В основном, напишите кусок кода для поиска файлов в каталоге, а затем выполните один и тот же код во всех циклах каталогов. потому что
Чтобы не иметь возможности определить, сколько подкаталогов в общей сложности, код поиска должен выполняться снова и снова, пока он не будет закончен. Рекурсивные звонки очень хороши!
Давайте создадим страницу поиска. Предположим, что была создана форма HTML, где пользователь входит в строку поиска.
Dim objfolder
Dim StrsearchText
Dim objfso
strsearchtext = request.form (searchtext) < - строка поиска
'Создать объекты FSO и папки
Установить fso = server.createObject (scripting.filesystemobject)
Установить objfolder = objfso.getfolder (server.mappath (/))
Поиск ObjFolder
Приведенный выше код просто инициализирует переменные, и функция поиска выполняет функцию поиска, которая описана следующим образом:
Поиск функций (objFolder)
Dim objsubfolder
'Проверка каждого файла в текущем
папка
Для каждого objfile в objfolder.files
Установить objtextStream = objfso.opentextfile (objfile.path, 1) < - для чтения
'Прочтите содержимое файла в
переменная
strfilecontents = objtextStream.readall
'Если строка поиска находится в файле, то
Напишите ссылку
'В файл
Если instr (1, strfilecontents, strsearchtext, 1) тогда
Response.write <a href =/ & objfile.name & _
> & objfile.name & < /a> <br>
BolfileFound = true
Конец, если
objtextStream.close
Следующий
'Вот рекурсионная часть - для каждого
'Подпастья в этом каталоге снова запустите функцию поиска
Для каждой objsubfolder в objfolder.subfolders
Поиск objsubfolder
Следующий
Конечная функция
Чтобы иметь возможность открыть файл, FSO требует фактического пути файла, а не веб -пути. Например, это c: inetpubwwwroot empiindex.html, а не
www.enfuss.com/temp/index.html или /temp/index.html. Чтобы преобразовать последнее в первое, используйте Server.mappath
(имя файла), имя файла представляет имя веб -пути.
Приведенный выше код будет выполнен в каждом подкаталоге папки в соответствии с указанным вами начальным каталогом, где первоначальный каталог относится к веб -корневым каталогу/. Затем
Просто откройте каждый файл в каталоге, чтобы увидеть, содержит ли он указанную строку.
Обратите внимание, что по мере увеличения количества файлов и подкаталогов, время, необходимое для поиска, увеличится. Если вам нужна тяжелая поисковая работа, вам рекомендуется принять другие меры
Методы, такие как сервер индексного сервера Microsoft.