rrmdir php中递归删除目录及目录下的文件

代码如下:

function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != “.” && $object != “..”) {
if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object);
}
}
reset($objects);
}
}

rmdir
(PHP 4, PHP 5)
rmdir — 删除目录
Report a bug 说明
bool rmdir ( string $dirname )
尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。成功时返回 TRUE, 或者在失败时返回 FALSE.
Note: 自 PHP 5.0.0 起 rmdir() 也可用于某些 URL 封装协议。参见Supported Protocols and Wrappers 的列表看看 rmdir() 支持哪些 URL 封装协议。
Note: 在 PHP 5.0.0 中增加了 对上下文(Context)的支持。有关 上下文(Context) 的说明参见 Stream 函数。
Note: 当启用 安全模式时, PHP 会在执行脚本时检查被脚本操作的目录是否与被执行的脚本有相同的 UID(所有者)。
参见 mkdir() 和 unlink()。


代码如下:

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

This isn't my code, but just thought I would share, since it took me so long to find. This is a function to delete a folder, all sub-folders, and files in one clean move.
Just tell it what directory you want deleted, in relation to the page that this function is executed. Then set $empty = true if you want the folder just emptied, but not deleted. If you set $empty = false, or just simply leave it out, the given directory will be deleted, as well.


代码如下:

<?php
function deleteAll($directory, $empty = false) {
if(substr($directory,-1) == "/") {
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)) {
return false;
} elseif(!is_readable($directory)) {
return false;
} else {
$directoryHandle = opendir($directory);
while ($contents = readdir($directoryHandle)) {
if($contents != '.' && $contents != '..') {
$path = $directory . "/" . $contents;
if(is_dir($path)) {
deleteAll($path);
} else {
unlink($path);
}
}
}
closedir($directoryHandle);
if($empty == false) {
if(!rmdir($directory)) {
return false;
}
}
return true;
}
}
?>
[/code]
A patch to previous script to make sure rights for deletion is set:


代码如下:

<?php
//Delete folder function
function deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir) || is_link($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!deleteDirectory($dir . "/" . $item)) {
chmod($dir . "/" . $item, 0777);
if (!deleteDirectory($dir . "/" . $item)) return false;
};
}
return rmdir($dir);
}
?>

更多说明可以参考 http://cn.php.net/rmdir

(0)

相关推荐

  • php中unlink()、mkdir()、rmdir()等方法的使用介绍

    unlink()函数删除文件 .mkdir()函数创建目录.rmdir()函数删除目录 复制代码 代码如下: <html> <head> <title>unlink()函数使用实例</title> </head> <body> <? //使用unlink函数删除文件 $filename="data.txt"; //定义变量 unlink($filename); //用unlink函数删除文件,这里的filen

  • php通过rmdir删除目录的简单用法

    本文实例讲述了php通过rmdir删除目录的简单用法.分享给大家供大家参考.具体分析如下: php可以通过rmdir()函数删除服务器上的目录,下面代码里用到了is_dir()函数,该函数用于判断指定的字符串是否是目录,删除成功返回True,否则返回False <?php if (!is_dir('exampledir')) { mkdir('exampledir'); } rmdir('exampledir'); ?> 希望本文所述对大家的php程序设计有所帮助.

  • php rmdir使用递归函数删除非空目录实例详解

     首先向大家介绍一下rmdir()函数. php rmdir()函数 rmdir - 删除空目录 语法: bool rmdir ( string $dirname [, resource $context ] ) 尝试删除 dirname 所指定的目录. 该目录必须是空的,而且要有相应的权限. 失败时会产生一个E_WARNING级别的错误. 参数: 1.dirname:目录的路径. 2.context:在 PHP 5.0.0 中增加了对上下文(Context)的支持. php rmdir()删除

  • PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用

    先看一下代码 复制代码 代码如下: <? function deldir($dir) { //先删除目录下的文件: $dh=opendir($dir); while ($file=readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$dir."/".$file; if(!is_dir($fullpath)) { unlink($fullpath); } else

  • PHP下用rmdir实现删除目录的三种方法小结

    1.递规法:利用递归一层一层的删.  复制代码 代码如下: deleteDir($dir)   {   if (rmdir($dir)==false && is_dir($dir)) {   if ($dp = opendir($dir)) {     while (($file=readdir($dp)) != false) {      if (is_dir($file) && $file!='.' && $file!='..') {       del

  • rrmdir php中递归删除目录及目录下的文件

    复制代码 代码如下: function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (filetype($dir."/".$object) == "dir") rrmdir($dir.

  • PHP unlink与rmdir删除目录及目录下所有文件实例代码

    在php中删除文件与目录其实很简单只要两个函数一个是unlink一个rmdir函数,如果要实现删除目录及目录下的文件我们需要利用递归来操作. 函数代码:仅删除指定目录下的文件,不删除目录文件夹,代码如下: class shanchu { //循环目录下的所有文件 function delFileUnderDir( $dirName="../Smarty/templates/templates_c" ) { if ( $handle = opendir( "$dirName&q

  • PHP删除目录及目录下所有文件的方法详解

    函数代码一:删除目录及目录下的所有文件 复制代码 代码如下: //循环删除目录和文件函数function delDirAndFile( $dirName ){if ( $handle = opendir( "$dirName" ) ) {while ( false !== ( $item = readdir( $handle ) ) ) {if ( $item != "." && $item != ".." ) {if ( is_

  • java递归读取目录下所有文件的方法

    java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),得到files[]数组,然后遍历得到的所有文件,通过isFile(文件)和isDirectory(文件夹)方法来判断读取的是文件还是文件夹,如果得到的是文件夹,就递归调用test()方法,如果得到的是文件,就将其加入fileList中,最后测试的时候遍历fileList下的所有文件,来验证读取数据的准确性. package com.cha

  • PHP不用递归遍历目录下所有文件的代码

    实现代码: /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

  • php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码

    web 开发中我们可能会碰到需要将某个目录下的所有文件清空,但不删除这个目录下的子目录(当然也不会删除被删除的根目录)的情况.那么对于这种只删除文件而不删除目录的方法,你是如何处理的呢?下面博主将要和你分享一下对于这个问题的一种比较好的解决办法.看下面这个函数: /*删除指定目录下的文件,不删除目录文件夹*/ function delFile($dirName){ if(file_exists($dirName) && $handle=opendir($dirName)){ while(f

  • Python通过递归获取目录下指定文件代码实例

    这篇文章主要介绍了python通过递归获取目录下指定文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_list=os.listdir(path) for x in dir_list: new_x=os.path.join(path,x) if

  • Linux中利用c语言删除某个目录下的文件

    利用c语言删除目录下文件 最近这段时间工作内容是关于Linux下的简单文件操作,以前对于Linux系统下的文件操作函数都不是太熟悉,经过这次实践,对这些函数使用有了一定的了解 如何创建文件,读写文件,这些简单的我想大家应该是比较熟悉的,我所介绍的是如何遍历某个目录,并且删除该目录下的文件(可以指定后缀名),并且也可以指定 文件的修改时间范围(多少小时以前的旧文件可以删除),下面就是简单的函数实现,仅供初学者参考(毕竟我也是初学者\(^o^)/~) #include <stdio.h> #inc

  • php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中

    php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中 实例代码: <?php /** * @author Administrator * */ class TestGenerate { public static $appFolder = ""; public static $ignoreFilePaths = array ( "xxxx/xxx.php" ); public static function start() { $AppPath =

  • nodejs 递归拷贝、读取目录下所有文件和目录

    先给大家介绍下nodejs 递归拷贝目录下所有文件和目录,具体代码如下所示: var fs=require('fs'); var copy=function(src,dst){ let paths = fs.readdirSync(src); //同步读取当前目录 paths.forEach(function(path){ var _src=src+'/'+path; var _dst=dst+'/'+path; fs.stat(_src,function(err,stats){ //stats

随机推荐