是否递归删除与特定文件扩展名匹配的文件?

时间:2014-06-02 13:08:48

标签: php

我想删除与指定目录和所有子树中的特定扩展名匹配的所有文件。我想我应该使用unlink但是一些帮助会受到高度赞赏...谢谢!

2 个答案:

答案 0 :(得分:0)

你需要这个

的组合

Recursive File Search (PHP)

unlink / delete

您应该能够编辑示例而不是回显文件,将其删除

答案 1 :(得分:0)

要从子目录中删除特定扩展文件,可以使用以下功能。例如:

<?php 
function delete_recursively_($path,$match){
   static $deleted = 0,
   $dsize = 0;
   $dirs = glob($path."*");
   $files = glob($path.$match);
   foreach($files as $file){
      if(is_file($file)){
         $deleted_size += filesize($file);
         unlink($file);
         $deleted++;
      }
   }
   foreach($dirs as $dir){
      if(is_dir($dir)){
         $dir = basename($dir) . "/";
         delete_recursively_($path.$dir,$match);
      }
   }
   return "$deleted files deleted with a total size of $deleted_size bytes";
}
?>

e.g。要删除所有文本文件,您可以按如下方式使用它:

<?php echo delete_recursively_('/home/username/directory/', '.txt'); ?>