【发布时间】:2011-10-07 09:43:54
【问题描述】:
我正在尝试创建删除虚拟主机上的所有文件和目录的函数,不包括给定的文件和文件夹数组
function cleanUp($exdirs, $exfiles){
$it = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('.'),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach($it as $entry) {
if ($entry->isDir() && !in_array($entry->getBasename(), $exdirs)) {
rmdir($entry->getPathname());
}
else {
if (!in_array($entry->getFileName(), $exfiles)) {
unlink($entry->getPathname());
}
else {
$exdirs[] = dirname($entry->getFileName());
}
}
}
}
然后像这样调用这个函数
$excludeDirsNames = array('cgi-bin');
$excludeFileNames = array('.htaccess', 'ws.zip', 'update.php');
cleanUp($excludeDirsNames , $excludeFileNames);
现在的问题是,它删除但收到错误消息:Directory not empty on line rmdir($entry->getPathname()); 几次。如何解决这个问题?
【问题讨论】:
-
这不在这里吗:stackoverflow.com/questions/7685134/…。当您遇到上一个答案的问题时,我建议您返回该线程,取消选择您批准的答案并在那里提问。如果您选择的答案不起作用,您应该恢复您的选择,以免混淆未来的用户如何看待该主题。
-
他给了我基本的想法。我无法取消选择
-
我的意思是我不想取消选择。他给了我主要的想法