Sie denken vielleicht: OK, jetzt weiß ich, wie man in die Datei schreibt. Aber können wir mehr tun? Versuchen wir, eine Suchfunktion für die Website zu erstellen.
Der Schlüssel zum Aufbau einer Suchmaschine ist die Rekursion. Schreiben Sie hauptsächlich einen Code, um nach Dateien im Verzeichnis zu suchen, und führen Sie denselben Code in allen Verzeichnisschleifen aus. Weil
Um nicht zu bestimmen, wie viele Unterverzeichnisse sich insgesamt befinden, muss der Suchcode immer wieder ausgeführt werden, bis er fertig ist. Rekursive Anrufe sind sehr gut!
Erstellen wir eine Suchseite. Angenommen, es wurde ein HTML -Formular erstellt, bei dem der Benutzer eine Suchzeichenfolge eingibt.
Dimer Objfolker
Dim StrsearchText
Dimer objfso
stresearchText = request.form (searchText) < - die Suchzeichenfolge
'Erstellen Sie die FSO- und Ordnerobjekte
Setzen Sie fso = server.createObject (scripting.FilesystemObject)
Setzen Sie objfolker = objfso.getFolder (server.mappath (/))
Suche nach Objfolker
Der obige Code initialisiert einfach die Variablen, und die Suchfunktion führt die Suchfunktion aus, die wie folgt beschrieben wird:
Funktionsuche (Objfolker)
Dimer Objsubfolder
'Schaufeln Sie jede Datei in der aktuellen Datei durch
Ordner
Für jede objfile in objfolder.files
Setzen Sie ObjTextStream = objfso.opentextFile (objFile.Path, 1) < - zum Lesen
'Lesen Sie den Inhalt der Datei in a
Variable
strFilecontents = objTextStream.readall
'Wenn sich die Suchzeichenfolge in der Datei befindet, dann
Schreiben Sie einen Link
'zur Datei
Wenn Instrument (1, Strfilecontents, StrsearchText, 1) dann
Response.write <a href =/ & objFile.name & _
> & objfile.name & < /a> <br>
bolfilefound = true
Ende wenn
objtextstream.close
Nächste
'Hier ist der Rekursionsteil - für jeden
„Unterordner in diesem Verzeichnis, führen Sie die Suchfunktion erneut aus
Für jeden objsubfolder in objfolker.subfolders
Suchen Sie Objsubfolder
Nächste
Endfunktion
Um eine Datei öffnen zu können, benötigt FSO den tatsächlichen Dateipfad und nicht den Webpfad. Zum Beispiel ist es c: inetpubwwwroot empiIndex.html, nicht
www.enfused.com/temp/index.html oder /temp/index.html. Verwenden Sie Server.Mappath, um letztere in die ersteren umzuwandeln.
(Dateiname), Dateiname repräsentiert den Namen des Webpfads.
Der obige Code wird in jedem Unterverzeichnis des Ordners unter dem von Ihnen angegebenen Erstverzeichnis ausgeführt, in dem sich das erste Verzeichnis auf das Web -Root -Verzeichnis bezieht/. Dann
Öffnen Sie einfach jede Datei im Verzeichnis, um festzustellen, ob sie die angegebene Zeichenfolge enthält.
Beachten Sie, dass mit zunehmender Anzahl von Dateien und Unterverzeichnissen die Zeit für die Suche zunimmt. Wenn Sie schwere Sucharbeiten benötigen, wird Ihnen empfohlen, andere Maßnahmen zu ergreifen
Methoden wie der Indexserver -Indexserver von Microsoft.