public function name($value = false, $overwrite = false)
    {
        if ($value === false) {
            return $this->adapter->basename($this->path);
        }

        if (! is_string($value) || strlen($value) == 0) {
            throw new FilesystemException('Invalid name given to name() method');
        }

        $newPath = substr($this->path, 0, strrpos($this->path, DIRECTORY_SEPARATOR) + 1);
        $newPath .= $value;

        return $this->path($newPath, $overwrite);
    }