protected function getTargetFile($directory, $name = null) {
if (!is_dir($directory)) {
if (false === @mkdir($directory, 0777, true)) {
throw new FileException(sprintf('Unable to create the "%s" directory', $directory));
}
}
elseif (!is_writable($directory)) {
throw new FileException(sprintf('Unable to write in the "%s" directory', $directory));
}
$target = $directory . DIRECTORY_SEPARATOR . (null === $name ? $this
->getBasename() : $this
->getName($name));
return new File($target, false);
}