Warning: session_start(): open(/www/htdocs/w017651d/tmp/wiki//sess_ac7a4a0bc9f090a743f33bb1a5d34b11, O_RDWR) failed: No such file or directory (2) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php on line 247

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/auth.php on line 424

Warning: session_write_close(): open(/www/htdocs/w017651d/tmp/wiki//sess_ac7a4a0bc9f090a743f33bb1a5d34b11, O_RDWR) failed: No such file or directory (2) in /www/htdocs/w017651d/wiki.blackcat-cms.org/doku.php on line 121

Warning: session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/www/htdocs/w017651d/tmp/wiki/) in /www/htdocs/w017651d/wiki.blackcat-cms.org/doku.php on line 121

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/actions.php on line 210

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/lib/tpl/dokuwiki/main.php on line 12
Verzeichnisinhalte ermitteln [BlackCat CMS Dokumentation, Tutorials, Tipps und Tricks]

Benutzer-Werkzeuge

Webseiten-Werkzeuge


core:helper:directory:read

Verzeichnisinhalte ermitteln

Synopsis

scanDirectory( $dir, $with_files = false, $files_only = false, $remove_prefix = NULL, $suffixes = array(), $skip_dirs = array(), $skip_files = array() )

Für diese Funktion gibt es mehrere „Shortcut“-Funktionen, die die Verwendung erleichtern. Alle verwenden intern jedoch scanDirectory().

Parameter

$dir
String Das Verzeichnis, in oder ab dem gesucht werden soll
$with_files optional
Boolean auch Dateien zurückliefern, Default: false
$files_only optional
Boolean nur Dateien zurückliefern, Default: false
$remove_prefix optional
String Entfernt diesen Teil vom Verzeichnisnamen; üblicherweise wird hier $dir nochmal angegeben, dann sind alle Suchergebnisse in relativen Pfaden
$suffixes optional
Array Liste von Dateiendungen, nach denen gefiltert werden soll; funktioniert nur wenn $with_files true ist
$skip_dirs optional
Array Liste von Verzeichnissen, die übersprungen werden sollen
$skip_files optional
Array Liste von Dateinamen, die übersprungen werden sollen


Rekursion

Standardmäßig arbeitet scanDirectory() rekursiv, das heißt, man bekommt alle Dateien bzw. Verzeichnisse ab dem angegebenen Startverzeichnis. Möchte man das unterbinden - oder die maximale Tiefe der Rekursion begrenzen - geht das mit der Methode maxRecursionDepth().

Beispiel

Liefert alle (und nur) Dateien unterhalb von ./temp und maximal einer Verzeichnisebene darunter.

$dh = CAT_Helper_Directory::getInstance();
$dh->maxRecursionDepth(1);
$files = $dh->scanDirectory(CAT_PATH.'/temp', true, true);

Das Ganze geht auch als Einzeiler:

$files = CAT_Helper_Directory::getInstance()->maxRecursionDepth(1)->scanDirectory(CAT_PATH.'/temp', true, true);

core/helper/directory/read.txt · Zuletzt geändert: 2014/05/08 00:00 (Externe Bearbeitung)