Пример #1
0
        public override IEnumerable <PvcStream> Execute(IEnumerable <PvcStream> inputStreams)
        {
            var     outputStream = new MemoryStream();
            var     returnStream = new PvcStream(() => outputStream);
            ZipFile zip          = new ZipFile();

            zip.CompressionLevel = _level;

            if (!String.IsNullOrEmpty(_password))
            {
                zip.Password = _password;
            }

            foreach (var inputStream in inputStreams)
            {
                ZipEntry e = zip.AddEntry(inputStream.StreamName, inputStream);
            }
            ;

            zip.Save(outputStream);

            return(new[]
            {
                returnStream.As(String.Format("{0}.zip", _archiveName))
            });
        }
Пример #2
0
        public override IEnumerable <PvcStream> Execute(IEnumerable <PvcStream> inputStreams)
        {
            var resultStreams = new List <PvcStream>();

            foreach (var inputStream in inputStreams)
            {
                ZipFile zip = ZipFile.Read(inputStream);

                foreach (ZipEntry e in zip)
                {
                    var outputStream = new ZipMemoryStream();

                    if (!String.IsNullOrEmpty(_password))
                    {
                        e.Password = _password;
                    }

                    e.Extract(outputStream);
                    var resultStream = new PvcStream(() => outputStream);
                    resultStream.Tags.Add("unzipped");
                    resultStreams.Add(resultStream.As(e.FileName));
                }
            }
            ;

            return(resultStreams);
        }