PHP unlink与rmdir删除目录及目录下所有文件
在php中删除文件与目录其实很简单只要两个函数一个是unlink一个rmdir函数,如果要实现删除目录及目录下的文件我们需要利用递归来操作.
函数代码:仅删除指定目录下的文件,不删除目录文件夹,代码如下:
<?php
class shanchu {
//循环目录下的所有文件
function delFileUnderDir($dirName = "../Smarty/templates/templates_c") {
if ($handle = opendir("$dirName")) {
while (false !== ($item = readdir($handle))) {
if ($item != "." && $item != "..") {
if (is_dir("$dirName/$item")) {
delFileUnderDir("$dirName/$item");
} else { //开源代码phprm.com
if (unlink("$dirName/$item")) echo "成功删除文件: $dirName/$item<br />n";
}
}
}
closedir($handle);
}
}
}
?>假设需要删除一个名叫"upload"目录下的所有文件,但无需删除目录文件夹,你可以通过以下代码完成:
<?php
delFileUnderDir('upload');
?>php删除所有目录,代码如下:
<?php
function deltree($pathdir) {
echo $pathdir; //调试时用的
if (is_empty_dir($pathdir)) //如果是空的
{
rmdir($pathdir); //直接删除
} else { //否则读这个目录,除了.和..外
$d = dir($pathdir);
while ($a = $d->read()) {
if (is_file($pathdir . '/' . $a) && ($a != '.') && ($a != '..')) {
unlink($pathdir . '/' . $a);
}
//如果是文件就直接删除
if (is_dir($pathdir . '/' . $a) && ($a != '.') && ($a != '..')) { //如果是目录
if (!is_empty_dir($pathdir . '/' . $a)) //是否为空
{ //如果不是,调用自身,不过是原来的路径+他下级的目录名
deltree($pathdir . '/' . $a);
}
if (is_empty_dir($pathdir . '/' . $a)) { //如果是空就直接删除
rmdir($pathdir . '/' . $a);
}
}
}
$d->close();
echo "必须先删除目录下的所有文件"; //我调试时用的
}
}
function is_empty_dir($pathdir) {
//判断目录是否为空
$d = opendir($pathdir);
$i = 0;
while ($a = readdir($d)) {
$i++;
}
closedir($d);
if ($i > 2) {
return false;
} else return true;
}
?>PHP删除目录及目录下所有文件,代码如下:
<?php
//循环删除目录和文件函数
function delDirAndFile($dirName) {
if ($handle = opendir("$dirName")) {
while (false !== ($item = readdir($handle))) {
if ($item != "." && $item != "..") {
if (is_dir("$dirName/$item")) {
delDirAndFile("$dirName/$item");
} else {
if (unlink("$dirName/$item")) echo "成功删除文件: $dirName/$item<br />n";
}
}
}
closedir($handle);
if (rmdir($dirName)) echo "成功删除目录: $dirName<br />n";
}
}
//假设需要删除一个名叫"upload"的同级目录即此目录下的所有文件,你可以通过以下代码完成:
delDirAndFile('upload');
?>本文地址:http://www.phprm.com/wenjian/fs4933.html
转载随意,但请附上文章地址:-)