. */ /** * Remove files and directories. * * * Txp::get('\Textpattern\Admin\Tools')->removeFiles(txpath, 'setup'); * * * @since 4.6.0 * @package Admin\Tools */ namespace Textpattern\Admin; class Tools { /** * Warnings. * * @var array */ private $warnings; /** * Constructor. */ public function __construct() { $this->warnings = array(); } /** * Removes files and directories. * * @param string $root The parent directory * @param array $files Files to remove * @return bool The result */ public static function removeFiles($root, $files = null) { if (!is_dir($root) || !is_writable($root)) { return false; } elseif (!isset($files)) { $files = array_diff(scandir($root), array('.', '..')); } elseif (!is_array($files)) { $files = do_list_unique($files); } $result = true; foreach ($files as $file) { $file = $root.DS.$file; if (is_file($file)) { $result &= unlink($file); } elseif ($result &= self::removeFiles($file)) { $result &= rmdir($file); } } return $result; } /** * Outputs warnings. * * @return array The warnings */ public function getWarnings() { return $this->warnings; } }