Create file and folders recursively

前端 未结 3 799
轻奢々
轻奢々 2021-01-11 14:03

I got an array containing path names and file names

[\'css/demo/main.css\', \'home.css\', \'admin/main.css\',\'account\']

I want to create

相关标签:
3条回答
  • 2021-01-11 14:40
    <?php
      function mkpath($path)
      {
        if(@mkdir($path) or file_exists($path)) return true;
        return (mkpath(dirname($path)) and mkdir($path));
      }
    ?>
    

    This makes paths recursively.

    0 讨论(0)
  • 2021-01-11 14:58

    I have just used a simple way to explode the string and rebuild and check if is a file or a directory

    public function mkdirRecursive($path) {
    
    
        $str = explode(DIRECTORY_SEPARATOR, $path);
        $dir = '';
        foreach ($str as $part) {
            $dir .= DIRECTORY_SEPARATOR. $part ;
            if (!is_dir($dir) && strlen($dir) > 0 && strpos($dir, ".") == false) {
                mkdir($dir , 655);
            }elseif(!file_exists($dir) && strpos($dir, ".") !== false){
               touch($dir);
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-11 15:00

    For each of this paths you'll have to specific whether it is a file or a directory. Or you could make your script assume, that the path is pointing to a file when the basename (the last part of the path) contains a dot.

    To create a directory recursively is simple:

    mkdir(dirname($path), 0755, true); // $path is a file
    mkdir($path, 0755, true);          // $path is a directory
    

    0755 is the file permission expression, you can read about it here: http://ch.php.net/manual/en/function.chmod.php

    0 讨论(0)
提交回复
热议问题