AppserverIo\Appserver\Core\Utilities\FileSystem::cleanUpDir PHP Метод

cleanUpDir() публичный статический Метод

Deletes all files and subdirectories from the passed directory.
public static cleanUpDir ( SplFileInfo $dir, boolean $alsoRemoveFiles = true ) : void
$dir SplFileInfo The directory to remove
$alsoRemoveFiles boolean The flag for removing files also
Результат void
    public static function cleanUpDir(\SplFileInfo $dir, $alsoRemoveFiles = true)
    {
        // first check if the directory exists, if not return immediately
        if ($dir->isDir() === false) {
            return;
        }
        // remove old archive from webapps folder recursively
        $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir->getPathname()), \RecursiveIteratorIterator::CHILD_FIRST);
        foreach ($files as $file) {
            // skip . and .. dirs
            if ($file->getFilename() === '.' || $file->getFilename() === '..') {
                continue;
            }
            if ($file->isDir()) {
                @rmdir($file->getRealPath());
            } elseif ($file->isFile() && $alsoRemoveFiles) {
                unlink($file->getRealPath());
            } else {
                // do nothing, because file should NOT be deleted obviously
            }
        }
    }

Usage Example

 /**
  * Deletes all files and subdirectories from the passed directory.
  *
  * @param \SplFileInfo $dir             The directory to remove
  * @param bool         $alsoRemoveFiles The flag for removing files also
  *
  * @return void
  */
 public function cleanUpDir(\SplFileInfo $dir, $alsoRemoveFiles = true)
 {
     FileSystem::cleanUpDir($dir, $alsoRemoveFiles);
 }