• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/backup.php
  • Класс: CTar
  • Вызов: CTar::close
function close()
{
	if ($this->mode == 'a')
		$this->flushBuffer();

	if ($this->gzip)
	{
		gzclose($this->res);

		if ($this->mode == 'a')
		{
			// добавим фактический размер всех несжатых данных в extra поле
			$f = fopen($this->file, 'rb+');
			fseek($f, 18);
			fwrite($f, pack("V", $this->ArchiveSizeCurrent));
			fclose($f);

			$this->dataSizeCache[$this->file] = $this->ArchiveSizeCurrent;

			// сохраним номер последней части в первый архив для многотомных архивов
			if (preg_match('#^(.+).([0-9]+)$#', $this->file, $regs))
			{
				$f = fopen($regs[1], 'rb+');
				fseek($f, 12);
				fwrite($f, 'LN'.pack("v",$regs[2]));
				fclose($f);
			}
		}
	}
	else
		fclose($this->res);
	clearstatcache();
}