目录的新建和删除,主要用到,mkdir:新建一个目录,rmdir:删除一个非空目录,注意只能是非空,代码如下:
复制代码 代码如下:
<?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.'https://www.jb51.net/'.$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;
}