您的位置:首页 > 其它

递归删除指定目录下的指定文件夹及其所有文件

2013-06-26 19:25 761 查看
<?php
function deldir($dir) {
//先删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;        chmod($fullpath,0777);
      
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}

closedir($dh);
//删除当前文件夹:
if(rmdir($dir)) {
return true;
} else {
return false;
}
}

function findDir($dir)
{
if(!$handle=@opendir($dir)){     //检测要打开目录是否存在
die("没有该目录");
}
while(false !==($file=readdir($handle))){
if($file!=="."&&$file!==".."){       //排除当前目录与父级目录
$file1 = $file;
$file=$dir .'/'. $file;
if(is_dir($file)){
if($file1 == 'jami'){
deldir($file);
}else{
findDir($file);
}
}
}
}
}
findDir('F:\wamp\www2\phone_backup\Code\v1.12');


/**
* 清理临时文件
*/
static public function clearTmpfile()
{
$path = Yii::app()->getRuntimePath();
$path .= '/spider/';

$dirs = array_diff(scandir($path), array('.', '..'));

foreach ($dirs as $dir) {
if (is_dir($path . '/' . $dir)) {
self::rmdir($path . '/' . $dir);
}
}
}

/**
* 递归删除文件
*/
static public function rmdir($path)
{
$dirs = array_diff(scandir($path), array('.', '..'));

foreach ($dirs as $dir) {
$file = $path . '/' . $dir;

if (is_file($file)) {
unlink($file);
}
else if (is_dir($file)) {
self::rmdir($file);
}
}

rmdir($path);
}


//每个文件夹最多5000个文件
$path = Yii::app()->getRuntimePath() . '/spider/task-'.intval($id / 5000);

if (!file_exists($path)) {
self::mkdir($path, 0777, true);
}

$file = $path . '/' . $id;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐