Anda mungkin berpikir: Oke, sekarang saya tahu cara menulis ke file. Tapi bisakah kita melakukan lebih banyak? Mari kita coba membuat fungsi pencarian untuk situs web.
Kunci untuk membangun mesin pencari adalah rekursi. Terutama, tulis sepotong kode untuk mencari file di direktori, dan kemudian jalankan kode yang sama di semua loop direktori. Karena
Agar tidak dapat menentukan berapa banyak subdirektori yang total, kode pencarian harus dieksekusi berulang -ulang sampai selesai. Panggilan rekursif sangat bagus!
Mari kita buat halaman pencarian. Misalkan formulir HTML telah dibuat, di mana pengguna memasukkan string pencarian.
Redup objolder
Redup strsearchText
Redup objfso
strsearchText = request.Form (SearchText) < - The Search String
'Buat objek folder dan folder
Atur fso = server.createObject (scripting.filesystemObject)
Setel objolder = objfso.getFolder (server.mappath (/))
Cari objolder
Kode di atas hanya menginisialisasi variabel, dan fungsi pencarian mengeksekusi fungsi pencarian, yang digambarkan sebagai berikut:
Pencarian fungsi (objolder)
Redup objsubfolder
'Lingkari setiap file di saat ini
map
Untuk setiap objfile di objolder.files
Set ObjTextStream = objfso.opentextFile (objfile.path, 1) < - untuk membaca
'Baca konten file ke
variabel
StrfileContents = objtextStream.readall
'Jika string pencarian ada di file, lalu
Tulis tautan
'ke file
If instr (1, strfileContents, strsearchText, 1)
Response.write <a href =/ & objfile.name & _
> & objfile.name & </a> <br>
bolfilefound = true
Akhiri jika
objtextStream.close
Berikutnya
'Inilah bagian rekursi - untuk masing -masing
'Subfolder di direktori ini, jalankan fungsi pencarian lagi
Untuk setiap objsubfolder di objolder.subfolder
Cari objsubfolder
Berikutnya
Fungsi akhir
Agar dapat membuka file, FSO memerlukan jalur file yang sebenarnya, bukan jalur web. Misalnya, ini adalah c: inetpubwwwroot empiindex.html, bukan
www.enfused.com/temp/index.html atau /temp/index.html. Untuk mengonversi yang terakhir ke yang pertama, gunakan server.mappath
(nama file), nama file mewakili nama jalur web.
Kode di atas akan dieksekusi di setiap subdirektori folder di bawah direktori awal yang Anda tentukan, di mana direktori awal mengacu pada direktori root web/. Kemudian
Cukup buka setiap file di direktori untuk melihat apakah berisi string yang ditentukan.
Perhatikan bahwa ketika jumlah file dan subdirektori meningkat, waktu yang dibutuhkan untuk pencarian akan meningkat. Jika Anda membutuhkan pekerjaan pencarian yang berat, Anda disarankan untuk mengambil tindakan lain
Metode, seperti server indeks indeks Microsoft.