public function getFile(string $name, int $ifNotExists = Directory::GET_FILE_NOT_EXISTS_THROW_EXCEPTION) : File
    {
        $path = $this->getPath(). DIRECTORY_SEPARATOR .$name;

        if($this->fileExists($name)) {
            return new File($path);
        }

        if($ifNotExists === Directory::GET_FILE_NOT_EXISTS_CREATE) {
            $this->_files[$name] = $name;

            return File::make($path, File::MAKE_FILE_EXISTS_OPEN);
        }

        throw new FileDoesntExist($path);
    }