CFile::setExtension PHP Method

setExtension() public method

If new extension is 'null' or 'False' current file extension is dropped. Lazy wrapper for {@link rename}. This method works only for files.
public setExtension ( null | boolean | string $extension = False ) : boolean | CFile
$extension null | boolean | string New file extension (e.g.: 'txt'). Pass null to drop current extension.
return boolean | CFile Current CFile object on success, 'False' on fail.
    public function setExtension($extension = False)
    {
        if ($this->getIsFile()) {
            if ($this->getIsUploaded()) {
                $this->addLog('setExtension() is unavailable for uploaded files. Please copy/move uploaded file from temporary directory', 'warning');
                return False;
            }
            if ($this->getWriteable() && $extension !== False) {
                $extension = trim($extension);
                // Drop current extension.
                if ($extension === null || $extension == '') {
                    $new_base_name = $this->getFilename();
                } else {
                    // Apply new extension.
                    $extension = ltrim($extension, '.');
                    if ($this->getExtension() === null) {
                        $new_base_name = $this->getFilename() . '.' . $extension;
                    } else {
                        $new_base_name = str_replace($this->getExtension(), $extension, $this->getBasename());
                    }
                }
                if ($this->rename($new_base_name)) {
                    return $this;
                }
            }
            $this->addLog('Unable to set file extension "' . $extension . '"');
            return False;
        }
        $this->addLog('setExtension() is available only for files', 'warning');
        return False;
    }