在php中要实现简单的目录创建和删除分别利用mkdir和rmdir这有点像dos中的命令了,但如果我要创建多级目录或删除多级目录中的文件和目录则需要递归来实例了。
php中mkdir创建多级目录
| 代码如下 |
复制代码 |
function mkdirs($dir)
{ if(!is_dir($dir))
{ if(!mkdirs(dirname($dir)))
{ return false; }
if(!mkdir($dir,0777))
{ return false; } }
return true;
}
|
调用方法
mkdirs('div/css/layout');
创建多级目录更标准的方法
| 代码如下 |
复制代码 |
|
//检查并创建多级目录
function checkDir($path){
$pathArray = explode('/',$path);
$nowPath = '';
array_pop($pathArray);
foreach ($pathArray as $key=>$value){
if ( ''==$value ){
unset($pathArray[$key]);
}else{
if ( $key == 0 )
$nowPath .= $value;
else
$nowPath .= '/'.$value;
if ( !is_dir($nowPath) ){
if ( !mkdir($nowPath, 0777) ) return false;
}
}
}
return true;
}
|
删除多级目录方法
在winxp下测试成功,只要php文件编码为gb2312,文件名随意,应该把文件名改为编码为gb2312,就行,没测
X-Node企业快速建站1.0.6.0801
特色介绍: 1、ASP+XML+XSLT开发,代码、界面、样式全分离,可快速开发 2、支持语言包,支持多模板,ASP文件中无任何HTML or 中文 3、无限级分类,无限级菜单,自由排序 4、自定义版头(用于不规则页面) 5、自动查找无用的上传文件与空目录,并有回收站,可删除、还原、永久删除 6、增强的Cache管理,可单独管理单个Cache 7、以内存和XML做为Cache,兼顾性能与消耗 8、
下载
立即学习“PHP免费学习笔记(深入)”;
| 代码如下 |
复制代码 |
|
header("Content-Type:text/html; charset=gb2312");
if(deleteDir('./复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 aaa'))
echo "删除成功";
function deleteDir($dir)
{
if (@rmdir($dir)==false && is_dir($dir)) //删除不了,进入删除所有文件
{
if ($dp = opendir($dir))
{
while (($file=readdir($dp)) != false)
{
if($file!='.' && $file!='..')
{ //echo $file=$dir.'/'.$file;echo ' ';
$file=$dir.'/'.$file;
if (is_dir($file)) //是真实目录
{
deleteDir($file);
}else {
unlink($file);
}
}
}
closedir($dp);
}else
{
return false;
}
}
if (is_dir($dir) && @rmdir($dir)==false) //是目录删除不了
return false;
return true;
}
?>
|
递归删除多级目录
同样的思路,php用rmdir和unlink递归删除多级目录的代码:
| 代码如下 |
复制代码 |
|
function rmdirs($dir)
{
$d = dir($dir);
while (false !== ($child = $d->read())){
if($child != '.' && $child != '..')
{
if(is_dir($dir.'/'.$child))
rmdirs($dir.'/'.$child);
else
unlink($dir.'/'.$child); }
}
$d->close();
//调用方法也很简单只要给目录就好
rmdir($dir);
}
|