base
portal
Suche:
Forum
Start
Neue Seite erstellen
Titel:
<h2>Verzeichnis lesen</h2> <b>Definition:</b> <codeparse> <i>Ergebnisliste</i>=get <i>Verzeichnis</i>[, <i>Mode</i>, <i>[-]Filter</i>, <i>Entfernen</i>, <i>Ergebnishash</i>]; </codeparse> <ul type=square><li>In <c>Ergebnisliste</c> werden die ermittelten Einträge übergeben. Standardmässig werden die Verzeichnisse und Dateien getrennt voneinander alphabetisch sortiert. Beispiel: <tab> Name Typ aaa/ Verzeichnis bbb/ Verzeichnis ccc/ Verzeichnis aaa.htx Seite bbb Datenbank bbb/ddd Datenbank in Verzeichnis "bbb/" ccc.htx Seite </tab> <li><c>Verzeichnis</c> gibt das zu durchsuchende Verzeichnis an. Wie üblich ist dies mit relativem (<c>dir1/dir2/</c>) oder absoluten (<c>/name/dir/</c>) Pfad möglich. Da es ein Verzeichnis ist, endet der Name zwingend mit einem <i>Slash</i> <c>/</c>. <li><c>Mode</c> kann folgende Werte annehmen: <tab> Name Bedeutung down Verzeichnis wird rekursiv, d.h. mit allen Unterverzeichnissen (und deren Unterverzeichnissen etc.), durchlaufen base Der Grundpfad des Verzeichnisses wird allen Einträgen vorangestellt (=absolut) name Es wird nur der Name des Eintrags, ohne den jeweiligen Pfad, aufgenommen join Sortiert Verzeichnisse und Dateien zusammen dir (Nur) Verzeichnisse werden in die Ergebnisliste aufgenommen file (Nur) Dateien (Datenbanken und Seiten) werden in die Ergebnisliste aufgenommen db (Nur) Datenbanken werden in die Ergebnisliste aufgenommen htx (Nur) Seiten werden in die Ergebnisliste aufgenommen </tab> Mehrere Werte können durch Komma <c>,</c> und/oder Leerzeichen getrennt angegeben werden, z.B.: <c>"down, base, db, htx"</c>. <li> <c>Filter</c> ist eine <i>regular expression</i> die auf jeden Verzeichnis-Eintrag angewendet wird. Nur wenn diese zutrifft, wird der Eintrag in die <c>Ergebnisliste</c> aufgenommen. Ist das erste Zeichen von <c>Filter</c> ein Minuszeichen <c>-</c> so wird ein Eintrag nur aufgenommen, wenn der Filter <b>nicht</b> zutrifft. Benötigt man im <c>Filter</c> selbst zu Beginn ein Minuszeichen <c>-</c> so muss man dieses mit dem <i>Backslash</i> <c>\</c> maskieren. <li> Auch bei <c>Entfernen</c> gibt man eine <i>regular expression</i> an, die -falls zutreffend- aus jedem Eintrag entfernt wird. <!-- <li> Um eine Verzeichnisliste mit allen Werten (Grösse, Rechte, Erzeugungsdatum) einer Datei auszugeben... <c>Ergebnishash</c>. Da das Ermitteln dieser Werte zusätzlich Zeit kostet, macht baseportal dies nur, wenn auch ein <c>Ergebnishash</c> angegeben wurde - wenn sie die Werte nicht brauchen, sollten Sie auch keinen Ergebnishash angeben (ja, das kann man besser formulieren ,-) ). </ul> --> <achtung> Will man beim Filter oder Entfernen den <i>Backslash</i> <c>\</c> übergeben, so kommt es zu Problemen, da die Maskierung bereits im Text aufgelöst wird. Übergibt man z.B. dem Filter <c>\.htx</c>, so wird der <i>Backslash</i> bereits im Text aufgelöst und nur <c>.htx</c> kommt bei der <i>regular expression</i> an. Zur Lösung bietet Perl das spezielle spezielle <i>Quoting</i> <c>qr</c>, das die <i>regular expression</i> so übergibt, wie sie ist (s.Beispiele). </achtung> <b>Beispiele:</b> <!-- hier müsste man mit gleich die sachen ausprobieren können, also ein link auf ne entsprechende seite, in der der befehl ausgeführt wird. - das muss beim doku-schreiben dann auch ganz einfach & schnell zu machen & einzufügen sein - am besten, dass man gar keine extra seite erstellen muss, sondern dass das <code>...</code> sowas automatisch bereitstellt... <code test=ok>...</code> --> <code> @dateien=get "dir/"; </code> Holt alle Verzeichnisse, Datenbanken und Seiten im Verzeichnis <c>dir</c>. <code> @dateien=get "dir/", "file"; </code> Holt alle Dateien (Datenbanken und Seiten) im Verzeichnis <c>dir</c>. <code> @dirs=get "dir/", "down,dir"; </code> Holt alle Verzeichnisse und Unterverzeichnisse im Verzeichnis <c>dir</c>. <code> @dbs=get "dir/", "down,dir,db,join"; </code> Holt alle Verzeichnisse und Datenbanken im Verzeichnis <c>dir</c> und allen Unterverzeichnissen und sortiert diese miteinander, so dass die Datenbanken in Unterverzeichnissen gleich nach diesen aufgelistet werden. <code> @backups=get "dir/", "down,db", qr/(^|\/)backup_/i; </code> Holt alle Datenbanken im Verzeichnis <c>dir</c> und allen Unterverzeichnissen, deren Name mit "backup_" (gross oder klein - wg. des angehängten "i") anfängt. <code> @seiten=get "dir/", "down,base,htx", qr/-\d+\.htx/, qr/\.htx$/; </code> Holt alle Seiten im Verzeichnis <c>dir</c> und allen Unterverzeichnissen, die nicht mit einer Zahl enden (z.B. "text123.htx" wird <b>nicht</b> geholt). Allen anderen Seiten wird der Basispfad vorangestellt und das ".htx" am Ende abgeschnitten. <h3>Verzeichnis anlegen</h3> <code> put "dir_neu/"; </code> Legt das Verzeichnis <c>dir_neu</c> an. Ein gleichnamiges Verzeichnis darf nicht existieren. <!-- oder "force" auch erlauben?? --> <h3>Verzeichnis löschen</h3> <code> del "dir/"; </code> Löscht das Verzeichnis <c>dir</c>, allerdings nur, wenn es komplett leer ist, also wenn keine Dateien oder Verzeichnisse darin enthalten sind. Um ein <i>volles</i> Verzeichnis zu löschen, muss man ein "force" anhängen: <code> del "dir/", "force"; </code> Löscht das Verzeichnis <c>dir</c>, egal ob es leer ist oder nicht. Entsprechend vorsichtig sollte man mit diesem Parameter umgehen - durch einen einzigen Befehl können Dutzende Datenbanken und Dateien auf einmal gelöscht werden!
Name:
Passwort:
Stichworte:
Version:
1
2
3 Angebot:
Alle
Nur Miete / Lizenz
Nur Miete / Lizenz professional
Nur Miete
Nur Miete smart + pro
Nur Miete smart + pro / Lizenz
Nur Miete pro
Nur Miete ab pure2, smart2, pro1
Nur Lizenz
Nur Lizenz professional
Nur Kostenlos
Ohne Änderungen zurück zur Seite
-
+
©
baseportal
GmbH. Alle Rechte vorbehalten.
powered in 0.02s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!