我的功能清理就是这样。
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());
我的功能出了什么问题?如何解决这个问题?
答案 0 :(得分:2)
我猜测cgi-bin
是符号链接而不是常规目录。这就是它进入“取消链接”部分的原因。错误消息可能是由于权限。
修复,将'cgi-bin'移动到$ excludeFileNames数组。