Maison > développement back-end > tutoriel php > 怎么删除目录上的所有文件(保留最下阶目录)

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

WBOY
Libérer: 2016-06-13 13:09:23
original
1295 Les gens l'ont consulté

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

PHP code
<!--

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;
    }
}
Copier après la connexion


------解决方案--------------------
注释上有写:
PHP code
//删除当前文件夹:
/*    if(rmdir($dir)) {
        return true;
    } else {
        return false;
    }
*/
<br><font color="#e78608">------解决方案--------------------</font><br>
Copier après la connexion
PHP code
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>
Copier après la connexion
PHP code
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>如需要返回要这样做
Copier après la connexion
PHP code
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>
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal