Exemple #1
0
        public override void Add(string path)
        {
            using (var file_stream = new FileStream(path, FileMode.Open, FileAccess.Read))
                using (var zip_stream = new ZipInputStream(file_stream)) {
                    ZipEntry entry;
                    while ((entry = zip_stream.GetNextEntry()) != null)
                    {
                        if (!entry.IsFile)
                        {
                            continue;
                        }
                        var extension = Path.GetExtension(entry.Name);
                        if (!parser_for_parts.SupportedFileExtensions.Contains(extension))
                        {
                            continue;
                        }

                        using (var out_stream = new MemoryStream()) {
                            int size;
                            var buffer = new byte[2048];
                            do
                            {
                                size = zip_stream.Read(buffer, 0, buffer.Length);
                                out_stream.Write(buffer, 0, size);
                            } while (size > 0);

                            out_stream.Seek(0, SeekOrigin.Begin);
                            try {
                                parser_for_parts.Add(out_stream, entry.Name);
                            } catch (NotSupportedException) {
                            }
                        }
                    }
                }
        }
Exemple #2
0
        private void AddResource(EmbeddedResource resource)
        {
            if (embedded_resource_parser == null)
            {
                return;
            }

            if (Path.GetExtension(resource.Name) == ".resources")
            {
                using (var reader = new ResourceReader(resource.GetResourceStream())) {
                    foreach (DictionaryEntry re in reader)
                    {
                        if (embedded_resource_parser.SupportedFileExtensions.Contains(Path.GetExtension(re.Key as string)))
                        {
                            embedded_resource_parser.Add(re.Value as Stream, re.Key as string);
                        }
                    }
                }
            }
            else if (embedded_resource_parser.SupportedFileExtensions.Contains(Path.GetExtension(resource.Name)))
            {
                embedded_resource_parser.Add(resource.GetResourceStream(), resource.Name);
            }
        }