Create file and folders recursively

Viewed 21415

I got an array containing path names and file names

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

I want to create those files and folders if they are not existed yet. Overwrite them if they are already existed.

4 Answers

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);
        }
    }
}

You can use is_dir

if (!is_dir($path)) 
{
    @mkdir($path, 0777, true);
}
Related