32        $path = preg_replace(
"/[\/\\\]+$/", 
"", $path);
 
   40        if ($mode == 
"filesystem") {
 
   43            if (defined(
"ILIAS_MODULE")) {
 
   60        $a_dir = trim($a_dir);
 
   63        if (substr($a_dir, -1) == 
"/") {
 
   64            $a_dir = substr($a_dir, 0, -1);
 
   68        if (!($path = substr($a_dir, 0, strrpos($a_dir, 
"/") - strlen($a_dir)))) {
 
   74        return @mkdir($a_dir, fileperms($path));
 
   79        $dirs = array($a_dir);
 
   80        $a_dir = dirname($a_dir);
 
   82        while ($last_dirname != $a_dir) {
 
   83            array_unshift($dirs, $a_dir);
 
   84            $last_dirname = $a_dir;
 
   85            $a_dir = dirname($a_dir);
 
   89        $reverse_paths = array_reverse($dirs, 
true);
 
   91        foreach ($reverse_paths as $key => $value) {
 
   92            if ($found_index == -1) {
 
  100        foreach ($dirs as $dirindex => $dir) {
 
  102            if ($dirindex >= $found_index) {
 
  103                if (!file_exists($dir)) {
 
  104                    if (strcmp(substr($dir, strlen($dir) - 1, 1), 
"/") == 0) {
 
  107                        $dir = substr($dir, 0, strlen($dir) - 1);
 
  109                    if (!mkdir($dir, $umask)) {
 
  110                        error_log(
"Can't make directory: $dir");
 
  113                } elseif (!is_dir($dir)) {
 
  114                    error_log(
"$dir is not a directory");
 
  118                    $umask = fileperms($dir);
 
  127        if (!is_dir($a_dir) || is_int(strpos($a_dir, 
".."))) {
 
  131        $current_dir = opendir($a_dir);
 
  140        while ($entryname = readdir($current_dir)) {
 
  141            $files[] = $entryname;
 
  144        foreach ($files as $file) {
 
  145            if (is_dir($a_dir . 
"/" . $file) and ($file != 
"." and $file != 
"..")) {
 
  147            } elseif ($file != 
"." and $file != 
"..") {
 
  148                unlink(${a_dir} . 
"/" . ${file});
 
  152        closedir($current_dir);
 
  158        $current_dir = opendir($a_dir);
 
  162        while ($entry = readdir($current_dir)) {
 
  163            if (is_dir($a_dir . 
"/" . $entry)) {
 
  164                $dirs[$entry] = array(
"type" => 
"dir", 
"entry" => $entry);
 
  166                if ($entry != 
"." && $entry != 
"..") {
 
  167                    $size = filesize($a_dir . 
"/" . $entry);
 
  168                    $files[$entry] = array(
"type" => 
"file", 
"entry" => $entry,
 
  176        return array_merge($dirs, $files);
 
  182        if (!is_dir($temp_path)) {
 
  185        $temp_name = tempnam($temp_path, 
"tmp");
 
  191        $temp_name = str_replace(
"\\", 
"/", $temp_name);
 
An exception for terminatinating execution or to throw for unit testing.
static getWebspaceDir($mode="filesystem")
static removeTrailingPathSeparators($path)
static rename($source, $target)
static makeDirParents($a_dir)