Loading...

关于FTP无法删除文件或者文件夹的处理方法

应该有朋友发现有的时候在web服务器上会发现有文件或者文件夹无法删除。那么这些文件或者文件夹非常可能就是php创建的,你可以尝试修改文件属性为777,然后再删除,如果修改失败,那FTP就不能删除了。为什么呢?因为文件或文件夹是php创建的,那么文件的owner就应该是httpd或者php了(根据apache设置相关),你ftp user不是超级用户,当然无法删除”别人”的文件了。那么这个时候就必须解铃还须系铃人了,用php删除这些文件或者文件夹。

当然php有自带的函数unlink rmdir来进行删除。可是当我们目录非空,而且层次比较深(例如:用pear的cache_lite创建的多级缓存就是这样的),那这就得自己写程序来进行删除了。 本打算自己写这样的函数,有了google和百度(估计您也是通过google或者baidu找到这里的吧),自己也就投偷懒了。

下面是删除多级文件夹的php函数,来自:Penner Blog

function removeDir($dirName)
{
$result = false;
if(! is_dir($dirName))
{
trigger_error("目录名称错误", E_USER_ERROR);
}
$handle = opendir($dirName);
while(($file = readdir($handle)) !== false)
{
if($file != '.' && $file != '..')
{
$dir = $dirName . DIRECTORY_SEPARATOR . $file;
is_dir($dir) ? removeDir($dir) : unlink($dir);
}
}
closedir($handle);
$result = rmdir($dirName) ? true : false;
return $result;
}

利用函数的嵌套,完美的实现了多级文件夹的删除,不错的函数。

该日志未加标签
发表于 2007-01-23 16:42:45 目录:PHP, 本站服务, 网站技术 [RSS 2.0] 您可以评论. Pinging 不可用.
  • 相关阅读
  • homezz 美国专业主机商
    已经有3位大师动手指导 拒绝低俗
    评论分页: 1
    (Required)
    (Required, not published)
    如果留言未显示无需重复留言,我将为你恢复!