public void Write64(Stream stream)
        {
            if (!this.zip64)
            {
                throw new InvalidOperationException("Can only write 64-bit headers for 64-bit archives.");
            }

            Zip64EndOfCentralDirectoryLocator eocdl = new Zip64EndOfCentralDirectoryLocator(stream.Position);

            BinaryWriter writer = new BinaryWriter(stream);

            writer.Write(EOCD64SIG);
            writer.Write((long)EOCD64_RECORD_FIXEDSIZE);
            writer.Write(this.versionMadeBy);
            writer.Write(this.versionNeeded);
            writer.Write(this.diskNumber);
            writer.Write(this.dirStartDiskNumber);
            writer.Write(this.entriesOnDisk);
            writer.Write(this.totalEntries);
            writer.Write(this.dirSize);
            writer.Write(this.dirOffset);

            eocdl.Write(stream);
        }