注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

PHP递归处理文件夹问题  

2017-10-16 08:57:50|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这基本上可说是非常常见的用法,无论是WINDOW还是LINUX,或UNIX,都有需要处理文件夹的时候,而一般情况下,针对这些操作系统的通用递归处理文件夹函数也算是蛮多的,不过集中到一块儿也许对大家来说,更方便调用。
获取目录中的文件:

<?

//递归获取目录中的文件
function getFileFromDir($dir){
//先判断指定的路径是不是一个文件夹
if (is_dir($dir)){
//是文件夹才处理
if ($dh = opendir($dir)){
//循环读文件
while (($file = readdir($dh))!= false){
//跳过.及..
if($file!="." && $file!=".."){
if (is_dir($dir.DIRECTORY_SEPARATOR.$file)){
//是文件夹继续递归
getFileFromDir($dir.DIRECTORY_SEPARATOR.$file);
}else{
//是文件则直接处理
echo $dir.DIRECTORY_SEPARATOR."<font color='red'>".$file."</font><br />";
}
}
}
}
closedir($dh);
}
}

?>

建立文件夹:

<?

function mkFileDir($dir){
//初始化路径
$path="";
//分解传入文件夹参数
$dirarr=explode(DIRECTORY_SEPARATOR,$dir);
//循环处理文件夹
for($i=0;$i<count($dirarr);$i++) {
if(!is_dir($path.=$dirarr[$i])){
//不存在则建立目录
mkdir($path,0777,true);
$path.=DIRECTORY_SEPARATOR;
}
}
}

?>

删除文件夹及文件:

<?

function deldir($dir){
//给定的目录必须是一个目录
if(is_dir($dir)){
//不为空,就需要直接进入先删除子文件及子文件平
$fh = opendir($dir);
while(($file = readdir($fh)) !== false){
//过滤掉.及..,删除文件及文件夹
if($file != '.' && $file!= '..'){
if(!is_dir($dir.DIRECTORY_SEPARATOR.$file)){
unlink($dir.DIRECTORY_SEPARATOR.$file);
}else{
deldir($dir.DIRECTORY_SEPARATOR.$file);
//判断如果目录是空就直接删除
if(is_dir($dir.DIRECTORY_SEPARATOR.$file) && is_empty_dir($dir.DIRECTORY_SEPARATOR.$file)) rmdir($dir.DIRECTORY_SEPARATOR.$file);
}
}
}
//关闭目录句柄
closedir($fh);
//判断如果目录是空就直接删除
if(is_dir($dir) && is_empty_dir($dir))rmdir($dir);
}
}
function is_empty_dir($dir)
{
//判断目录是否为空
$fh = opendir($dir);
while(($file = readdir($fh)) !== false){
if($file != '.' && $file!= '..'){
//目录下有文件或文件夹
return false;
}
}
closedir($fh);
return true;
}

?>

当然删除目录还有一种简单粗暴的办法,直接利用系统命令:

<?

function del_dir($dir){
//WINDOW
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$cmd = "rmdir /s/q ".$dir;
} else {
//其它系统
$cmd = "rm -Rf " .$dir;
}
//执行系统命令
exec($cmd,$output);
}

?>

善于利用以上函数,不管操作系统是什么,对文件进行处理可说是易如反掌了。



  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017