2

我的功能清理看起来像这样。

function cleanUp($exdirs, $exfiles){
$it = new RecursiveIteratorIterator(
  new RecursiveDirectoryIterator('.'), 
  RecursiveIteratorIterator::CHILD_FIRST
);
foreach($it as $entry) {
  if ($entry->isDir() && !in_array($entry->getBasename(), $exdirs)) {
    try {
      rmdir($entry->getPathname());
    }
    catch (Exception $ex) {
      // dir not empty
    }
  }
  elseif (!in_array($entry->getFileName(), $exfiles)) {
    unlink($entry->getPathname());
  }
}
}

像这样调用这个函数

$excludeDirsNames = array('cgi-bin');
$excludeFileNames = array('ws.zip');
cleanUp($excludeDirsNames , $excludeFileNames);

现在的问题是我收到警告消息。can not unlink cgi-bin on line unlink($entry->getPathname());

我的功能有什么问题?如何解决这个问题?

4

1 回答 1

2

我猜这cgi-bin是一个符号链接,而不是一个常规目录。这就是它进入“取消链接”部分的原因。错误消息可能是由于权限。

修复,将 'cgi-bin' 移动到 $excludeFileNames 数组。

于 2011-10-08T08:21:47.940 回答