< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
dim st
st=timer()
'************************************************** * ***********
'*************Klasse SearchFile zum Durchsuchen von Festplattendateien *************
'******************Aufrufmethode: ***********
'*************Set newsearch=new SearchFile 'Anweisung******************
'******************newsearch.Folder="F:+E:"'Eingehende Suchquelle******************** **
'******************newsearch.keyword="Zusammenstellung" 'Schlüsselwort******************
'***************newsearch.Search 'Suche beginnen nach******************
'******************Set newsearch=Nothing 'End****************
'************************************************** * ***********
Klasse SearchFile
dim Folders 'Geben Sie den absoluten Pfad ein, verwenden Sie das +-Zeichen, um mehrere Pfade zu verbinden, und es dürfen keine Leerzeichen vorhanden sein.
dim keyword 'Eingabeschlüsselwörter
dim objFso 'Globale Variablen definieren
dim Counter 'Definieren Sie globale Variablen, die Anzahl der Suchergebnisse
'*****************Initialisierung******************************* *******
Private Sub Class_Initialize
Setze objFso=Server.CreateObject("Scripting.FileSystemObject")
Counter=0 'Zähler initialisieren
Sub beenden
'************************************************** * ************
Private Unterklasse_Terminate
Setze objFso=Nothing
Sub beenden
'******************Öffentliches Mitglied, aufrufende Methode****************************** **
Funktionssuche
Folders=split(Folders,"+") 'In Array konvertieren
keyword=trim(keyword) 'Entfernen Sie führende und nachfolgende Leerzeichen
if keyword="" then
Response.Write("<font color='red'>Schlüsselwörter dürfen nicht leer sein</font><br/>")
Exit-Funktion
Ende wenn
'Stellen Sie fest, ob es illegale Zeichen enthält
flag=instr(keyword,"") oder instr(keyword,"/")
flag=flag oder instr(keyword,::)
flag=flag oder instr(keyword,"|")
flag=flag oder instr(keyword,"&")
wenn Flag dann 'Schlüsselwörter dürfen /:|& nicht enthalten
Response.Write("<font color='red'>Schlüsselwörter dürfen /:|&</font><br/> nicht enthalten")
Exit-Funktion 'Exit, wenn dies enthalten ist
Ende wenn
'Mehrpfadsuche
dimi
für i=0 bis ubound(Ordner)
Call GetAllFile(Folders(i)) 'Rufen Sie die rekursive Schleifenfunktion auf
nächste
Response.Write("Es wurden insgesamt <font color='red'>"&Counter&"</font> Ergebnisse gefunden")
Funktion beenden
'******************Dateien und Ordner durchsuchen****************************** * **
Private Funktion GetAllFile(Folder)
dim objFd,objFs,objFf
Setze objFd=objFso.GetFolder(Ordner)
Legen Sie objFs=objFd.SubFolders fest
Setzen Sie objFf=objFd.Files
'Unterordner durchsuchen
dim strFdName 'Deklarieren Sie den Namen des Unterordners
'***************Unterordner durchsuchen******
Bei Fehler als nächstes fortfahren
Für jedes OneDir in objFs
strFdName=OneDir.Name
„Systemordner werden nicht durchsucht.“
Wenn strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"System Volume Information" Dann
SFN=Folder&""&strFdName 'Absoluter Pfad
Call GetAllFile(SFN) 'Rekursion aufrufen
Ende wenn
Nächste
dim strFlName
'**********Durchsuchen Sie die Dateien**********
Für jede OneFile in objFf
strFlName=OneFile.Name
'desktop.ini und Folder.htt sind nicht in der Liste enthalten
Wenn strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" Dann
FN=Ordner&""&strFlName
Zähler=Zähler+FarbeEin(FN)
Ende wenn
Nächste
'******************************
'Schließen Sie jede Objektinstanz
Setze objFd=Nichts
Setze objFs=Nothing
Setze objFf=Nichts
Funktion beenden
'***********************Übereinstimmendes Muster generieren************************* ******** **********
Private Funktion CreatePattern(Schlüsselwort)
CreatePattern=Schlüsselwort
CreatePattern=Replace(CreatePattern,".",".")
CreatePattern=Replace(CreatePattern,"+","+")
CreatePattern=Replace(CreatePattern,"(","(")
CreatePattern=Replace(CreatePattern,")",")")
CreatePattern=Replace(CreatePattern,"[","[")
CreatePattern=Replace(CreatePattern,"]","]")
CreatePattern=Replace(CreatePattern,"{","{")
CreatePattern=Replace(CreatePattern,"}","}")
CreatePattern=Replace(CreatePattern,"*","[^\/]*") '* match
CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '? match
CreatePattern="("&CreatePattern&")+" 'Gesamtübereinstimmung
Funktion beenden
'******************************Such- und Farbschlüsselwörter*************** *** *********
Private Funktion ColorOn(FileName)
dim objReg
Legen Sie objReg=new RegExp fest
objReg.Pattern=CreatePattern(Schlüsselwort)
objReg.IgnoreCase=True
objReg.Global=True
retVal=objReg.Test(FileName) 'Suchtest durchführen, färben und ausgeben, wenn bestanden
wenn retVal dann
OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") 'Legen Sie die Anzeigefarbe von Schlüsselwörtern fest
'******************************Dieser Teil kann nach Bedarf geändert werden und die Ausgabe********* ****** *********************
OutPut="<a href='#'>"&OutPut&"</a><br/>"
Response.Write(OutPut) 'Übereinstimmungsergebnisse ausgeben
'***********************************Ende des veränderbaren Teils******** ******************************
ColorOn=1 'Anzahl der hinzugefügten Zähler
anders
ColorOn=0
Ende wenn
Setze objReg=Nothing
Funktion beenden
Unterricht beenden
'***********************Ende der Klasse SearchFile************************* **
%>
<html>
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>www.knowsky.com</title>
</head>
<body>
<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
Schlüsselwörter:
<input name="keyword" type="text" id="keyword">
<input type="submit" name="Submit" value="Search">
<a href="help.htm" target="_blank">Erweiterte Suchhilfe</a>
</form>
<%
dim-Schlüsselwort
keyword=Request.Form("keyword")
wenn Schlüsselwort<>"" dann
Legen Sie newsearch=new SearchFile fest
newsearch.Folders="E:Medien+F:"
newsearch.keyword=Schlüsselwort
newsearch.Suche
Setze newsearch=Nothing
Response.Write("<br/>Zeitaufwändig: "&(timer()-st)*1000&"ms")
Ende, wenn
%>
</body>
</html>