php删除文件夹/目录下所文件(包含目录)

以前有介绍过一个删除指定目录下的指定文件下面我们来看删除指定目录所的所有文件只删除一级目录不删除下级目录,具体程序例子如下:

  1. public function del(){
  2. header("Content-Type: text/html; charset=UTF-8");
  3. echo '点击文件名可以查看:<br>';
  4. $dir =getcwd()."/html/";
  5. //获取某目录下所有文件、目录名(不包括子目录下文件、目录名)
  6. $handler = opendir($dir);
  7. while (($filename = readdir($handler)) !== false) {//务必使用!==,防止目录下出现类似文件名“0”等情况
  8. if ($filename != "." && $filename != "..") {
  9. $files[] = $filename ;
  10. }
  11. }
  12. closedir($handler);
  13. //打印所有文件名
  14. foreach ($files as $value) {
  15. $url = 'http://'.$_SERVER['HTTP_HOST']."/html/".$value;
  16. echo "<a href='".$url."' target='_blank'>".$value."</a> | <a href='/index.php?s=/Index1/dodel/name/".$value."' target='_self'>删除</a><br />";
  17. }
  18. }
  19. public function dodel(){
  20. header("Content-Type: text/html; charset=UTF-8");
  21. $fname = $this->_get("name");
  22. $fname = getcwd()."/html/".$fname.".html";
  23. if(unlink($fname)){
  24. echo $fname.' 文件删除成功!<a href="javascript:history.go(-1);">返回</a>';
  25. }else{
  26. echo $fname.' 删除失败!<a href="javascript:history.go(-1);">返回</a>';
  27. }
  28. }

获取目录下所有文件,包括子目录,代码如下:

  1. function get_allfiles($path,&$files) {
  2. if(is_dir($path)){
  3. $dp = dir($path);
  4. while ($file = $dp ->read()){
  5. if($file !="." && $file !=".."){
  6. get_allfiles($path."/".$file, $files);
  7. }
  8. }
  9. $dp ->close();
  10. }
  11. if(is_file($path)){
  12. $files[] = $path;
  13. }
  14. }
  15. function get_filenamesbydir($dir){
  16. $files = array();
  17. get_allfiles($dir,$files);
  18. return $files;
  19. }
  20. $filenames = get_filenamesbydir("static/image/");
  21. //打印所有文件名,包括路径
  22. foreach ($filenames as $value) {
  23. echo $value."<br />";
  24. }

php删除文件夹及其文件夹下所有文件,代码如下:

  1. function deldir($dir) {
  2. //先删除目录下的文件:
  3. $dh=opendir($dir);
  4. while ($file=readdir($dh)) {
  5. if($file!="." && $file!="..") {
  6. $fullpath=$dir."/".$file;
  7. if(!is_dir($fullpath)) {
  8. unlink($fullpath);
  9. } else {
  10. deldir($fullpath);
  11. }
  12. }
  13. }
  14. closedir($dh);
  15. //删除当前文件夹:
  16. if(rmdir($dir)) {
  17. return true;
  18. } else {
  19. return false;
  20. }
  21. }