在php中删除目录中的文件夹和文件

在php中删除目录中的文件夹和文件,php,Php,我试图找到一种方法来删除位于另一个文件夹中的文件夹(例如帐户/用户名-我想删除用户名,但其中有2个文件夹(1个名称图像和其他命名视频)-其中包含文件 我试过了 $accounts = "accounts"; $uploaddir = "$username"; $image_dir = 'image'; $video_dir = 'video'; $image_folder = "$accounts$username$image_dir/"; $uploadfile = $image_folde

我试图找到一种方法来删除位于另一个文件夹中的文件夹(例如帐户/用户名-我想删除用户名,但其中有2个文件夹(1个名称图像和其他命名视频)-其中包含文件

我试过了

$accounts = "accounts";
$uploaddir = "$username";
$image_dir = 'image';
$video_dir = 'video';

$image_folder = "$accounts$username$image_dir/";
$uploadfile = $image_folder . basename($_FILES['image']['name']);

$dir = "$accounts/$uploaddir";
array_map('unlink', glob($dir."/*"));
rmdir($dir);

关键功能:取消链接文件、scandirrmdir但您需要扫描该目录中的所有内容并相应地执行操作

1.在文件的情况下取消链接 2.在目录使用is_dir()函数的情况下删除

<?php
  function deleteDir($dir) {
  if (is_dir($dir)) {
    $objects = scandir($dir);
    foreach ($objects as $object) {
      if ($object != "." && $object != "..") {
        if (filetype($dir."/".$object) == "dir") 
           deleteDir($dir."/".$object); 
        else unlink   ($dir."/".$object);
      }
    }
    reset($objects);
    rmdir($dir);
  }
 }
?>

干杯!

您可以使用以下功能

unlink(file_path);
您可以删除完整的文件夹/文件。请参阅

谢谢
Amit

这是我一直使用的函数:

function delete_directory($dirname) {
   if (is_dir($dirname))
      $dir_handle = opendir($dirname);

   if (!$dir_handle)
      return false;
   while($file = readdir($dir_handle)) {
      if ($file != "." && $file != "..") {
         if (!is_dir($dirname."/".$file))
            unlink($dirname."/".$file);
         else
            delete_directory($dirname.'/'.$file);    
      }
   }
   closedir($dir_handle);
   rmdir($dirname);
   return true;
}

这会删除文件和文件夹吗检查:这是一个已退出的上载文件夹,还是在上载时正在删除文件夹?请参阅:
function delete_directory($dirname) {
   if (is_dir($dirname))
      $dir_handle = opendir($dirname);

   if (!$dir_handle)
      return false;
   while($file = readdir($dir_handle)) {
      if ($file != "." && $file != "..") {
         if (!is_dir($dirname."/".$file))
            unlink($dirname."/".$file);
         else
            delete_directory($dirname.'/'.$file);    
      }
   }
   closedir($dir_handle);
   rmdir($dirname);
   return true;
}