public static function removeDirectory($directory)
    {
        $inner = new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS);
        $outer = new \RecursiveIteratorIterator($inner, \RecursiveIteratorIterator::SELF_FIRST);

        // remove the files first
        foreach ($outer as $file) {
            if ($file->isFile()) {
                unlink($file);
            }
        }

        // remove the sub-directories next
        $files = iterator_to_array($outer);
        foreach (array_reverse($files) as $file) {
            /** @var \SplFileInfo $file */
            if ($file->isDir()) {
                rmdir($file);
            }
        }

        // finally the directory itself
        rmdir($directory);
    }
public static function removeDirectory($directory)
    {
        $inner = new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS);
        $outer = new \RecursiveIteratorIterator($inner, \RecursiveIteratorIterator::SELF_FIRST);

        // remove the files first
        foreach ($outer as $file) {
            if ($file->isFile()) {
                unlink($file);
            }
        }

        // remove the sub-directories next
        $files = iterator_to_array($outer);
        foreach (array_reverse($files) as $file) {
            /** @var \SplFileInfo $file */
            if ($file->isDir()) {
                rmdir($file);
            }
        }

        // finally the directory itself
        rmdir($directory);
    }
public static function removeDirectory ( $ directory ) { $ inner = new \ RecursiveDirectoryIterator ( $ directory , \ FilesystemIterator :: SKIP_DOTS ) ; $ outer = new \ RecursiveIteratorIterator ( $ inner , \ RecursiveIteratorIterator :: SELF_FIRST ) ; // remove the files first foreach ( $ outer as $ file ) { if ( $ file -> isFile ( ) ) { unlink ( $ file ) ; } } // remove the sub-directories next $ files = iterator_to_array ( $ outer ) ; foreach ( array_reverse ( $ files ) as $ file ) { /** @var \SplFileInfo $file */ if ( $ file -> isDir ( ) ) { rmdir ( $ file ) ; } } // finally the directory itself rmdir ( $ directory ) ; }
Recursively removes a directory from the filesystem.
Recursively removes a directory from the filesystem .