Exemple #1
0
        public void AddFileStart(string name, long size, DateTime dt, FileAttributes attribute, bool compress)
        {
            if (currentFile != null)
            {
                throw new ApplicationException("currentFile != null");
            }

            name = name.Replace("/", "\\");

            File f = new File();

            f.Encoding = this.Encoding;
            f.Name = name;
            f.Size = size;
            f.DateTime = dt;
            f.Attributes = attribute;
            f.Compress = compress;

            this.fileList.Add(f);

            ZipDataHeader h = new ZipDataHeader();
            f.HeaderPos = (uint)fifo.TotalWriteSize;
            f.WriteZipDataHeader(ref h, false);
            fifo.Write(Util.StructToByte(h));
            fifo.Write(this.Encoding.GetBytes(f.Name));
            f.Crc32 = 0xffffffff;

            if (compress)
            {
                f.ZStream = new CoreUtil.Internal.ZStream();
                f.ZStream.deflateInit(-1, -15);
            }

            currentFile = f;
        }