< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
redup st
st=pengatur waktu()
'******************************************************* ***********
'*************Class SearchFile untuk mencari file hard disk *************
'******************Metode panggilan: *************
'*************Atur pernyataan newsearch=new SearchFile '******************
'******************newsearch.Folder="F:+E:"'Sumber pencarian masuk**************** **
'******************newsearch.keyword="Kompilasi" 'Kata Kunci******************
'************newsearch.Search 'Mulai mencari******************
'******************Setel pencarian baru=Tidak Ada 'Akhir****************
'******************************************************* ***********
File Pencarian Kelas
redupkan Folder 'Lewati jalur absolut, gunakan tanda + untuk menghubungkan beberapa jalur, dan tidak boleh ada spasi.
redupkan kata kunci 'Masukkan kata kunci
dim objFso 'Tentukan variabel global
dim Counter 'Tentukan variabel global, jumlah hasil pencarian
'***************** inisialisasi ******************************* *******
Sub Kelas Pribadi_Inisialisasi
Setel objFso=Server.CreateObject("Scripting.FileSystemObject")
Counter=0 'Inisialisasi penghitung
Akhiri Sub
'******************************************************* ************
Sub Kelas Pribadi_Terminate
Setel objFso=Tidak Ada
Akhiri Sub
'******************Anggota publik, metode panggilan************************** **
Pencarian Fungsi
Folder=split(Folder,"+") 'Konversi ke array
kata kunci=trim(kata kunci) 'Hapus spasi di depan dan di belakang
jika kata kunci = "" maka
Response.Write("<font color='red'>Kata kunci tidak boleh kosong</font><br/>")
keluar Fungsi
berakhir jika
'Tentukan apakah itu mengandung karakter ilegal
flag=instr(kata kunci,"") atau instr(kata kunci,"/")
bendera=bendera atau instr(kata kunci,":")
flag=bendera atau instr(kata kunci,"|")
flag=bendera atau instr(kata kunci,"&")
jika ditandai maka 'Kata kunci tidak boleh berisi /:|&
Response.Write("<font color='red'>Kata kunci tidak boleh berisi /:|&</font><br/>")
Fungsi Keluar 'Keluar jika ini disertakan
berakhir jika
'Pencarian beberapa jalur
redup
untuk i=0 hingga ubound(Folder)
Panggil GetAllFile(Folders(i)) 'Panggil fungsi rekursif loop
Berikutnya
Response.Write("Total <font color='red'>"&Counter&"</font> hasil ditemukan")
Fungsi Akhir
'******************Melintasi file dan folder*************************** * **
Fungsi Pribadi GetAllFile (Folder)
redupkan objFd,objFs,objFf
Setel objFd=objFso.GetFolder(Folder)
Setel objFs=objFd.SubFolder
Setel objFf=objFd.File
'Melintasi subfolder
dim strFdName 'Deklarasikan nama subfolder
'************Melintasi subfolder******
pada kesalahan lanjutkan berikutnya
Untuk Setiap OneDir Di objFs
strFdName=OneDir.Nama
'Folder sistem tidak dilintasi
Jika strFdName<>"Config.Msi" EQV strFdName<>"DAUR ULANG" EQV strFdName<>"RECYCLER" EQV strFdName<>"Informasi Volume Sistem" Lalu
SFN=Folder&""&strFdName 'Jalur absolut
Panggil GetAllFile(SFN) 'Panggilan rekursi
Akhiri Jika
Berikutnya
redupkan strFlName
'**********Melintasi file**********
Untuk Setiap OneFile Di objFf
strFlName=SatuFile.Nama
'desktop.ini dan folder.htt tidak termasuk dalam daftar
Jika strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" Lalu
FN=Folder&""&strFlNama
Penghitung=Penghitung+Warna(FN)
Akhiri Jika
Berikutnya
'******************************
'Tutup setiap instance objek
Setel objFd=Tidak ada
Setel objFs=Tidak Ada
Setel objFf=Tidak Ada
Fungsi Akhir
'************************Hasilkan pola yang cocok************************ ******** **********
Fungsi Pribadi CreatePattern (kata kunci)
CreatePattern=kata kunci
CreatePattern=Ganti(CreatePattern,".",".")
CreatePattern=Ganti(CreatePattern,"+","+")
CreatePattern=Ganti(CreatePattern,"(","(")
CreatePattern=Ganti(CreatePattern,"")",")")
CreatePattern=Ganti(CreatePattern,"[","[")
CreatePattern=Ganti(CreatePattern,"]","]")
CreatePattern=Ganti(CreatePattern,"{","{")
CreatePattern=Ganti(CreatePattern,"}","}")
CreatePattern=Ganti(CreatePattern,"*","[^\/]*") '* cocok
CreatePattern=Ganti(CreatePattern,"?","[^\/]{1}") '?
CreatePattern="("&CreatePattern&")+" 'Kecocokan keseluruhan
Fungsi Akhir
'******************************Pencarian dan warna kata kunci*************** *** *********
Fungsi Pribadi ColorOn (Nama File)
redupkan objekReg
Setel objReg=RegExp baru
objReg.Pattern=CreatePattern(kata kunci)
objReg.IgnoreCase=Benar
objReg.Global=Benar
retVal=objReg.Test(FileName) 'Lakukan tes pencarian, warna dan keluaran jika lulus
jika retVal maka
OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") 'Setel warna tampilan kata kunci
'******************************Bagian ini dapat dimodifikasi sesuai kebutuhan dan outputnya********* ****** *********************
Keluaran="<a href='#'>"&Keluaran&"</a><br/>"
Response.Write(OutPut) 'Hasil pencocokan keluaran
'************************************Akhir dari bagian yang dapat dimodifikasi******** ******************************
ColorOn=1 'Jumlah penghitung yang ditambahkan
kalau tidak
Warna Aktif=0
berakhir jika
Setel objReg=Tidak Ada
Fungsi Akhir
Kelas Akhir
'************************Akhiri File Pencarian kelas*********************** **
%>
<html>
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<title>www.knowsky.com</title>
</kepala>
<tubuh>
<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
Kata kunci:
<masukan nama="kata kunci" type="teks" id="kata kunci">
<input type="kirim" nama="Kirim" value="Cari">
<a href="help.htm" target="_blank">Bantuan penelusuran lanjutan</a>
</bentuk>
<%
kata kunci redup
kata kunci=Permintaan.Formulir("kata kunci")
jika kata kunci<>"" lalu
Setel pencarian baru=File Pencarian baru
pencarian baru.Folder="E:Media+F:"
newsearch.keyword=kata kunci
pencarian baru.Pencarian
Setel pencarian baru=Tidak Ada
respon.Write("<br/>Memakan waktu: "&(timer()-st)*1000&"ms")
berakhir jika
%>
</tubuh>
</html>