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