/** * removes a directory * * @param string $path * @param int $options * @return bool * @todo consider $options with STREAM_MKDIR_RECURSIVE */ public function rmdir($path, $options) { $path = $this->resolvePath(vfsStream::path($path)); $child = $this->getContentOfType($path, vfsStreamContent::TYPE_DIR); if (null === $child) { return false; } // can only remove empty directories if (count($child->getChildren()) > 0) { return false; } if (self::$root->getName() === $path) { // delete root? very brave. :) self::$root = null; clearstatcache(); return true; } $names = $this->splitPath($path); $dir = $this->getContentOfType($names['dirname'], vfsStreamContent::TYPE_DIR); if ($dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) { return false; } clearstatcache(); return $dir->removeChild($child->getName()); }
/** * helper method to print the content * * @param vfsStreamContent $content */ protected function printContent(vfsStreamContent $content) { fwrite($this->out, str_repeat(' ', $this->depth) . '- ' . $content->getName() . "\n"); }
/** * adds child to the directory * * @param vfsStreamContent $child */ public function addChild(vfsStreamContent $child) { $this->children[$child->getName()] = $child; $this->updateModifications(); }