コード例 #1
0
ファイル: ZipWriter.cs プロジェクト: RainsSoft/sharpcompress
        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);
        }
コード例 #2
0
ファイル: ZipWriter.cs プロジェクト: eklann/sharpcompress
        public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment)
            : base(ArchiveType.Zip)
        {
            this.zipComment = zipComment ?? string.Empty;

            this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo);
            InitalizeStream(destination, false);
        }
コード例 #3
0
        public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment)
            : base(ArchiveType.Zip)
        {
            this.zipComment = zipComment ?? string.Empty;

            this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo);
            InitalizeStream(destination, false);
        }
コード例 #4
0
ファイル: ZipWriter.cs プロジェクト: RainsSoft/sharpcompress
 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);
 }
コード例 #5
0
            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);
            }
コード例 #6
0
ファイル: ZipWriter.cs プロジェクト: RainsSoft/sharpcompress
 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);
 }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: ZipWriter.cs プロジェクト: eklann/sharpcompress
 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);
 }