public function addDir($path)
{
$archiveDirName = str_replace($this->archiveBaseDir, "", $path);
if (!empty($archiveDirName)) {
$this->addEmptyDir(ltrim($archiveDirName, "/"));
}
$nodes = glob($path . '/*');
foreach ($nodes as $node) {
if (is_dir($node)) {
foreach ($this->excludeDirectories as $dir) {
if (strpos($node, $dir) !== false) {
continue 2;
}
}
$this->addDir($node);
} else {
if (is_file($node)) {
$archiveFileName = str_replace($this->archiveBaseDir . "/", "", $node);
$this->addFile($node, $archiveFileName);
}
}
}
}