private int WriteHeader(string filename, DateTime?modificationTime, CompressionInfo compressionInfo) { ZipCompressionInfo info = (compressionInfo != null) ? new ZipCompressionInfo(compressionInfo) : this.zipCompressionInfo; byte[] bytes = ArchiveEncoding.Default.GetBytes(filename); base.OutputStream.Write(BitConverter.GetBytes((uint)0x4034b50), 0, 4); byte[] buffer = new byte[2]; buffer[0] = 0x3f; base.OutputStream.Write(buffer, 0, 2); HeaderFlags flags = (ArchiveEncoding.Default == Encoding.UTF8) ? HeaderFlags.UTF8 : ((HeaderFlags)0); if (!base.OutputStream.CanSeek) { flags = (HeaderFlags)((ushort)(flags | HeaderFlags.UsePostDataDescriptor)); if (info.Compression == ZipCompressionMethod.LZMA) { flags = (HeaderFlags)((ushort)(flags | HeaderFlags.Bit1)); } } base.OutputStream.Write(BitConverter.GetBytes((ushort)flags), 0, 2); base.OutputStream.Write(BitConverter.GetBytes((ushort)info.Compression), 0, 2); base.OutputStream.Write(BitConverter.GetBytes(Utility.DateTimeToDosTime(modificationTime)), 0, 4); buffer = new byte[12]; base.OutputStream.Write(buffer, 0, 12); base.OutputStream.Write(BitConverter.GetBytes((ushort)bytes.Length), 0, 2); base.OutputStream.Write(BitConverter.GetBytes((ushort)0), 0, 2); base.OutputStream.Write(bytes, 0, bytes.Length); return(30 + bytes.Length); }
public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment) : base(ArchiveType.Zip) { this.zipComment = zipComment ?? string.Empty; this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo); InitalizeStream(destination, false); }
public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment) : base(ArchiveType.Zip) { this.ppmdProperties = new PpmdProperties(); this.entries = new List <ZipCentralDirectoryEntry>(); this.zipComment = zipComment ?? string.Empty; this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo); base.InitalizeStream(destination, false); }
public ZipWritingStream(ZipWriter writer, Stream originalStream, ZipCentralDirectoryEntry entry, CompressionInfo compressionInfo) { this.writer = writer; this.entry = entry; this.compressionInfo = compressionInfo == null ? writer.zipCompressionInfo : new ZipCompressionInfo(compressionInfo); writeStream = GetWriteStream(originalStream); }
public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment) : base(ArchiveType.Zip) { this.ppmdProperties = new PpmdProperties(); this.entries = new List<ZipCentralDirectoryEntry>(); this.zipComment = zipComment ?? string.Empty; this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo); base.InitalizeStream(destination, false); }
internal ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment, string password = null, bool leaveOpen = false) : base(ArchiveType.Zip) { this.zipComment = zipComment ?? string.Empty; this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo); this.password = password; InitalizeStream(destination, !leaveOpen); }
internal ZipWritingStream(ZipWriter writer, Stream originalStream, ZipCentralDirectoryEntry entry, CompressionInfo compressionInfo) { this.writer = writer; this.originalStream = originalStream; this.writer = writer; this.entry = entry; this.compressionInfo = compressionInfo == null ? writer.zipCompressionInfo : new ZipCompressionInfo(compressionInfo); writeStream = GetWriteStream(originalStream); }