protected function move()
    {
        if ($this->compress) {
            $gzip = new Compress($this->config);
            $gzip->pack($this->temp, $this->config->file);
            unlink($this->temp);
            return true;
        }

        if (@rename($this->temp, $this->config->file)) {
            return true;
        }

        if (@copy($this->temp, $this->config->file) && unlink($this->temp)) {
            return true;
        }

        throw new Exception('Unable to move the temporary file.');
    }