protected function extract($args)
{
$target = $args['target'];
$mimes = !empty($args['mimes']) && is_array($args['mimes']) ? $args['mimes'] : array();
$error = array(self::ERROR_EXTRACT, '#' . $target);
$makedir = isset($args['makedir']) ? (bool) $args['makedir'] : null;
if (($volume = $this->volume($target)) == false || ($file = $volume->file($target)) == false) {
return array('error' => $this->error(self::ERROR_EXTRACT, '#' . $target, self::ERROR_FILE_NOT_FOUND));
}
return ($file = $volume->extract($target, $makedir)) ? array('added' => isset($file['read']) ? array($file) : $file) : array('error' => $this->error(self::ERROR_EXTRACT, $volume->path($target), $volume->error()));
}