< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
rue sombre
st=minuterie()
'************************************************ * ***********
'***************Class SearchFile pour rechercher des fichiers sur le disque dur *************
'******************Méthode d'appel : *************
'***************Définir newsearch=new SearchFile 'Déclaration******************
'******************newsearch.Folder="F:+E:"'Source de recherche entrante****************** **
'******************newsearch.keyword="Compilation" 'Mot-clé******************
'************newsearch.Search 'Commencez la recherche de *******************
'******************Définir newsearch=Rien 'Fin******************
'************************************************ * ***********
Fichier de recherche de classe
dim Dossiers 'Passez le chemin absolu, utilisez le signe + pour connecter plusieurs chemins, et il ne doit y avoir aucun espace.
dim password 'Mots-clés d'entrée
dim objFso 'Définir les variables globales
dim Counter 'Définir les variables globales, le nombre de résultats de recherche
'******************initialisation******************************** *******
Sous-classe privée_Initialize
Définir objFso=Server.CreateObject("Scripting.FileSystemObject")
Counter=0 'Initialiser le compteur
Fin du sous-marin
'************************************************ * ************
Sous-classe privée_Terminate
Définir objFso=Rien
Fin du sous-marin
'******************Membre public, méthode d'appel*************************** **
Recherche de fonction
Folders=split(Folders,"+") 'Convertir en tableau
keyword=trim(keyword) 'Supprimer les espaces de début et de fin
si mot-clé="" alors
Response.Write("<font color='red'>Les mots clés ne peuvent pas être vides</font><br/>")
Fonction de sortie
finir si
'Déterminer s'il contient des caractères illégaux
flag=instr(mot-clé,"") ou instr(mot-clé,"/")
flag=drapeau ou instr(mot-clé,":")
flag=drapeau ou instr(mot-clé,"|")
flag=drapeau ou instr(mot-clé,"&")
if flag then 'Les mots clés ne peuvent pas contenir /:|&
Response.Write("<font color='red'>Les mots clés ne peuvent pas contenir /:|&</font><br/>")
Fonction de sortie 'Quitter si cela est inclus
finir si
'Recherche de chemins multiples
dimi
pour i=0 vers ubound (Dossiers)
Call GetAllFile(Folders(i)) 'Appelle la fonction récursive de boucle
suivant
Response.Write("Un total de <font color='red'>"&Counter&"</font> résultats ont été trouvés")
Fonction de fin
'******************Parcourir des fichiers et des dossiers*************************** * **
Fonction privée GetAllFile (Dossier)
objFd, objFs, objFf
Définir objFd=objFso.GetFolder(Dossier)
Définir objFs=objFd.SubFolders
Définir objFf=objFd.Files
'Parcourir les sous-dossiers
dim strFdName 'Déclarer le nom du sous-dossier
'************Traverser les sous-dossiers******
en cas d'erreur, reprendre ensuite
Pour chaque OneDir dans objFs
strFdName=OneDir.Name
'Les dossiers système ne sont pas parcourus
Si strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"Informations sur le volume système" Alors
SFN=Dossier&""&strFdName 'Chemin absolu
Appelez GetAllFile(SFN) 'Récursion d'appel
Fin si
Suivant
dim strFlName
'**********Parcourir les fichiers**********
Pour chaque OneFile dans objFf
strFlName=OneFile.Name
'desktop.ini et dossier.htt ne sont pas inclus dans la liste
Si strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" Alors
FN=Dossier&""&strFlName
Compteur=Compteur+ColorOn(FN)
Fin si
Suivant
'******************************
'Fermez chaque instance d'objet
Définir objFd=Rien
Définir objFs=Rien
Définir objFf=Rien
Fonction de fin
'************************Générer un motif correspondant************************ ******** **********
Fonction privée CreatePattern (mot-clé)
CreatePattern=mot-clé
CreatePattern=Remplacer(CreatePattern,".",".")
CreatePattern=Remplacer(CreatePattern,"+","+")
CreatePattern=Remplacer(CreatePattern,"(","(")
CreatePattern=Remplacer(CreatePattern,")",")")
CreatePattern=Remplacer(CreatePattern,"[","[")
CreatePattern=Remplacer(CreatePattern,"]","]")
CreatePattern=Remplacer(CreatePattern,"{","{")
CreatePattern=Remplacer(CreatePattern,"}","}")
CreatePattern=Replace(CreatePattern,"*","[^\/]*") '* correspondance
CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '?
CreatePattern="("&CreatePattern&")+" 'Correspondance globale
Fonction de fin
'******************************Recherche et mots-clés de couleur*************** *** **********
Fonction privée ColorOn (FileName)
objReg faible
Définir objReg=new RegExp
objReg.Pattern=CreatePattern (mot-clé)
objReg.IgnoreCase=True
objReg.Global=Vrai
retVal=objReg.Test(FileName) 'Effectuer un test de recherche, une couleur et une sortie si réussi
si retVal alors
OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") 'Définir la couleur d'affichage des mots-clés
'******************************Cette pièce peut être modifiée selon les besoins et la sortie********* ****** **********************
OutPut="<a href='#'>"&OutPut&"</a><br/>"
Response.Write(OutPut) 'Résultats de correspondance de sortie
'************************************Fin de la partie modifiable******** *****************************
ColorOn=1 'Nombre de compteurs ajoutés
autre
CouleurActive=0
finir si
Définir objReg=Rien
Fonction de fin
Fin du cours
'************************Fin de classe RechercheFichier********************* **
%>
<html>
<tête>
<méta http-equiv="Content-Type" content="text/html; charset=gb2312">
<titre>www.knowsky.com</titre>
</tête>
<corps>
<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
Mots-clés :
<input name="keyword" type="text" id="keyword">
<input type="submit" name="Submit" value="Recherche">
<a href="help.htm" target="_blank">Aide à la recherche avancée</a>
</form>
<%
mot-clé faible
mot-clé=Request.Form("mot-clé")
si mot-clé<>"" alors
Définir newsearch = nouveau SearchFile
newsearch.Folders="E:Media+F:"
newsearch.keyword=mot-clé
newsearch.Search
Définir newsearch = Rien
réponse.Write("<br/>Prend du temps : "&(timer()-st)*1000&"ms")
terminer si
%>
</corps>
</html>