public function addFileFooter(): void
    {

        if ($this->bits & self::BIT_ZERO_HEADER) {
            $fields = [
                ['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE],
                ['V', $this->crc],              // CRC32
                ['V', $this->zlen],             // Length of compressed data
                ['V', $this->len],              // Length of original data
            ];

            if ($this->zip->opt->isEnableZip64()) {
                $fields = [
                    ['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE],
                    ['V', $this->crc],              // CRC32
                    ['P', $this->zlen],             // Length of compressed data
                    ['P', $this->len],              // Length of original data
                ];
            }

            $footer = ZipStream::packFields($fields);
            $this->zip->send($footer);
        } else {
            $footer = '';
        }
        $this->totalLength = $this->hlen->add($this->zlen)->add(Bigint::init(strlen($footer)));
        $this->zip->addToCdr($this);
    }