详谈PHP文件目录基础操作(4)
复制代码 代码如下: php // 目录的新建和删除 $newDirPath = 'F:/newDir'; if(true == @mkdir($newDirPath, 0777, true)){ // 加@是因为文件已存在时php本身可能会抛出一个warni
复制代码 代码如下:
<?php
// 目录的新建和删除
$newDirPath = 'F:/newDir';
if(true == @mkdir($newDirPath, 0777, true)){ // 加@是因为文件已存在时php本身可能会抛出一个warning
echo 'create directory '.$newDirPath.' successfully<br>';
}
else{
if(file_exists($newDirPath))
echo 'directory '.$newDirPath.' has existed<br>';
else
echo 'create directory '.$newDirPath.' failed<br>';
}
if(true == @rmdir('F:/aaa')) //只能删除非空目录,如果删除不存在的目录自动抛出warning
echo 'remove successfully<br>';
那么问题来了,如果要删除一个非空目录咋办,又得自己写了,思想仍然是递归,因为php只提供了删除文件函数unlink,所以在删除一个目录时,先opendir,再进入,如果是文件直接删除,如果是目录,继续进入使用该方法处理,当然还可已返回一个bool变量表示删除是否成功,代码如下:
复制代码 代码如下:
<?php
// 删除文件 unlink
// 删除目录中的内容,然后删除该目录
function clearDir($dirpath){
if(file_exists($dirpath)){
if(false != ($handle = opendir($dirpath))){
while(false != ($name = readdir($handle))){
if($name == '.' || $name == '..')
continue;
$filename = $dirpath.'/'.$name;
if(is_dir($filename))
clearDir($filename);
if(is_file($filename))
@unlink($filename);
}
closedir($handle);
rmdir($dirpath);
}
else{
return false;
}
}
else{
return false;
}
return true;
}
精彩图集
精彩文章






