すべてのファイルとディレクトリ (再帰的) を含むディレクトリを削除する方法ですが、特別なファイル名がある場合、そのツリーとその子は生き残りますか?
protected function _removeDir ($dir, &$found)
{
// is this directory exist?
if (!is_dir ($dir))
{
return false;
}
// is there .ignore?
if (is_file ($dir.'/.ignore'))
{
$found = true;
return false;
}
// now iterate
foreach (new DirectoryIterator($dir) as $fileinfo)
{
$absPath = $dir.'/'.$fileinfo->getFilename();
if (is_file($absPath))
{
unlink ($absPath);
}
if (is_dir($absPath))
{
$this->_removeDir ($absPath, $found);
}
}
if (!$found)
{
rmdir ($dir);
}
return true;
}
しかし、存在しないディレクトリでトリップします