> 백엔드 개발 > PHP 튜토리얼 > 怎么删除目录上的所有文件(保留最下阶目录)

怎么删除目录上的所有文件(保留最下阶目录)

WBOY
풀어 주다: 2016-06-13 10:52:54
원래의
947명이 탐색했습니다.

如何删除目录下的所有文件(保留最上阶目录)
我想删除一个目录下的目录及文件,但保留最上阶目录. 如何说, 要删除/upload/下的所有目录及文件,但保留/upload目录.
下面函数会把/upload目录也删除

PHP code

1

<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->function delDir($dir) {    //先删除目录下的文件:    $dh=opendir($dir);    while ($file=readdir($dh)) {        if($file!="." && $file!="..") {            $fullpath=$dir."/".$file;            if(!is_dir($fullpath)) {                unlink($fullpath);            } else {                delDir($fullpath);            }        }    }    closedir($dh);    //删除当前文件夹:    if(rmdir($dir)) {        return true;    } else {        return false;    }}

로그인 후 복사


------解决方案--------------------
注释上有写:
PHP code

1

//删除当前文件夹:/*    if(rmdir($dir)) {        return true;    } else {        return false;    }*/<br><font color="#e78608">------解决方案--------------------</font><br>

로그인 후 복사
PHP code

1

function delDir($dir) {    //先删除目录下的文件:    $dh=opendir($dir);    while ($file=readdir($dh)) {        if($file!="." && $file!="..") {            $fullpath=$dir."/".$file;            if(!is_dir($fullpath)) {                unlink($fullpath);            } else {                delDir($fullpath);            }        }    }    closedir($dh);}<br><font color="#e78608">------解决方案--------------------</font><br>

로그인 후 복사
PHP code

1

function delDir($dir) {  $t = array();  $dh = opendir($dir);  while ($file=readdir($dh)) {    if($file!="." && $file!="..") {      $fullpath=$dir."/".$file;      if(!is_dir($fullpath)) {        unlink($fullpath);      } else {        delDir($fullpath);        $t[] = $fullpath;//由于目录被占用,不能删除。保存起来      }    }  }  closedir($dh);  if($t) array_map('rmdir', $t);//删除所有的子目录}<br><font color="#e78608">------解决方案--------------------</font><br>或者在删除目录的时候 判断 是不是upload 是的话不删除<br><font color="#e78608">------解决方案--------------------</font><br>在你原函数中<br>           } else {<br>               delDir($fullpath);//这里并没有承接delDir的返回值<br>           }<br>返回是没有意义的。所以我没有书写返回<br><br>如需要返回要这样做

로그인 후 복사
PHP code

1

2

3

4

5

6

function delDir($dir) {  $t = array();  $r = true;  $dh = opendir($dir);  while ($file=readdir($dh)) {    if($file!="." && $file!="..") {      $fullpath=$dir."/".$file;      if(!is_dir($fullpath)) {        unlink($fullpath);      } else {        $r &= delDir($fullpath);        $t[] = $fullpath;//由于目录被占用,不能删除。保存起来      }    }  }  closedir($dh);  if($t) foreach($t as $f) $r &= rmdir($f);//删除所有的子目录  return $r;}<div class="clear">

                  

               

               

         

            </div>

로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿