您好,欢迎访问一九零五行业门户网

php 删除非空目录自定义函数_PHP教程

在php中删除目录如果是空目录我们可直接使用rmdir来删除,但是要删除非空目录我们需要先删除最子级目录的文件然后再删除空目录,其实就是递归删除目录了。
//循环删除目录和文件函数
 代码如下 复制代码
function deldirandfile( $dirname )
{
if ( $handle = opendir( “$dirname” ) ) {
while ( false !== ( $item = readdir( $handle ) ) ) {
if ( $item != “.” && $item != “..” ) {
if ( is_dir( “$dirname/$item” ) ) {
deldirandfile( “$dirname/$item” );
} else {
if( unlink( “$dirname/$item” ) )echo “成功删除文件: $dirname/$item
n”;
}
}
}
closedir( $handle );
if( rmdir( $dirname ) )echo “成功删除目录: $dirname
n”;
}
}
?>
//循环目录下的所有文件
 代码如下 复制代码
function delfileunderdir( $dirname=”../smarty/templates/templates_c” )
{
if ( $handle = opendir( “$dirname” ) ) {
while ( false !== ( $item = readdir( $handle ) ) ) {
if ( $item != “.” && $item != “..” ) {
if ( is_dir( “$dirname/$item” ) ) {
delfileunderdir( “$dirname/$item” );
} else {
if( unlink( “$dirname/$item” ) )echo “成功删除文件: $dirname/$item
n”;
}
}
}
closedir( $handle );
}
}
?>
目录删除函数
 代码如下 复制代码
function my_del_dir($directory)

        if (is_dir($directory) == false) 
        { 
            exit(the directory is not exist!); 
        } 
        $handle = opendir($directory); 
        while (($file = readdir($handle)) !== false) 
        { 
            if ($file != . && $file != ..) 
            { 
                is_dir($directory/$file)? 
                my_del_dir($directory/$file): 
                unlink($directory/$file); 
            } 
        } 
        if (readdir($handle) == false) 
        { 
            closedir($handle); 
            rmdir($directory); 
        } 
    } 
    ?>
自己写的一个
$sourcedir 要删除的目录路径
调用方法 deletedir(“images/abc”);  //删除abc目录
 代码如下 复制代码
function deletedir($sourcedir){
$succeed = true;
if(file_exists($sourcedir)){
$objdir = opendir($sourcedir);
while(false !== ($filename = readdir($objdir))){
if(($filename != “.”) && ($filename != “..”)){
chmod(“$sourcedir/$filename”,0777);
if(!is_dir(“$sourcedir/$filename”)){
if(!unlink(“$sourcedir/$filename”)){
$succeed = false;
break;
}
}
else{
deletedir(“$sourcedir/$filename”);
}
}
}
if(!readdir($objdir)){
closedir($objdir);
if(!rmdir($sourcedir)){
$succeed = false;
}
}
}
return $succeed;
}
http://www.bkjia.com/phpjc/631535.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/631535.htmltecharticle在php中删除目录如果是空目录我们可直接使用rmdir来删除,但是要删除非空目录我们需要先删除最子级目录的文件然后再删除空目录,其实就...
其它类似信息

推荐信息