PHP | rmdir 函数

怎样删除目录

最近更新时间 2021-01-20 09:48:45

rmdir 函数删除目录。

rmdir() 函数尝试删除 dirname 所指定的目录。该目录必须为空,需要有相应的权限。失败时会抛出警告。

函数定义

rmdir ( string $dirname , resource $context = ? ) : bool
// 源文件位于:ext/standard/file.c
# 函数定义

PHP_FUNCTION(rmdir)
{
  char *dir;
  size_t dir_len;
  zval *zcontext = NULL;
  php_stream_context *context;

  ZEND_PARSE_PARAMETERS_START(1, 2)
    Z_PARAM_PATH(dir, dir_len)
    Z_PARAM_OPTIONAL
    Z_PARAM_RESOURCE_OR_NULL(zcontext)
  ZEND_PARSE_PARAMETERS_END();

  context = php_stream_context_from_zval(zcontext, 0);

  RETURN_BOOL(php_stream_rmdir(dir, REPORT_ERRORS, context));
}

参数

  • checkdirname - 目录的路径。

返回值

  • checkbool - 成功时返回 true,失败时返回 false。

示例1: - 使用 rmdir() 函数删除目录。

<?php
/**
 * PHP rmdir() 函数删除目录。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 删除目录
rmdir("foo");

示例2: - 递归删除目录树。

<?php
/**
 * PHP 递归删除目录树。
 *
 * @since Version 1.0.0
 * @filesource
 */

function delTree($dir) {
  // 获取路径下的所有目录
  $dirs = array_diff(scandir($dir), array('.', '..'));

  // 删除文件或目录
  foreach ($dirs as $file) {
    $filename = $dir.DIRECTORY_SEPARATOR.$file;
    is_dir($filename)?delTree($filename): unlink($filename);
  }

  // 删除目录
  return rmdir($dir);
}

// 测试
// delTree('foo');
rss_feed