예제 #1
0
function recursive_remove_directory($directory)
{
    // if the path has a slash at the end we remove it here
    if (substr($directory, -1) == '/') {
        $directory = substr($directory, 0, -1);
    }
    // if the path is not valid or is not a directory ...
    if (!file_exists($directory) || !is_dir($directory)) {
        // ... we return false and exit the function
        return FALSE;
        // ... if the path is not readable
    } elseif (!is_readable($directory)) {
        // ... we return false and exit the function
        return FALSE;
        // ... else if the path is readable
    } else {
        // we open the directory
        $handle = opendir($directory);
        $postproc = AKFactory::getPostProc();
        // and scan through the items inside
        while (FALSE !== ($item = readdir($handle))) {
            // if the filepointer is not the current directory
            // or the parent directory
            if ($item != '.' && $item != '..') {
                // we build the new path to delete
                $path = $directory . '/' . $item;
                // if the new path is a directory
                if (is_dir($path)) {
                    // we call this function with the new path
                    recursive_remove_directory($path);
                    // if the new path is a file
                } else {
                    // we remove the file
                    $postproc->unlink($path);
                }
            }
        }
        // close the directory
        closedir($handle);
        // try to delete the now empty directory
        if (!$postproc->rmdir($directory)) {
            // return false if not possible
            return FALSE;
        }
        // return success
        return TRUE;
    }
}
 /**
  * Proxies deleting a file to the restore.php version
  *
  * @param   string  $fileName  The path to the file to be deleted
  *
  * @return  bool
  *
  * @since   3.5.1
  */
 public static function delete($fileName)
 {
     $postproc = AKFactory::getPostProc();
     $postproc->unlink($fileName);
 }