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; }