public EpubFile(string filePath, Encoding encoding) { // Załaduj archiwum _file = new ZipFile(filePath, encoding); // Zapamiętaj referencje do plików, które mogą ulec zmianie ZipEntry _ncxEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == ncxFileName); ZipEntry _opfEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == opfFileName); IEnumerable <ZipEntry> sections = _file.Entries.Where(f => Path.GetExtension(f.FileName) == ".html"); // Rozpakuj i rozczytaj pliki metadanych (content.opf) i spisu treści (toc.ncx) _ncxMetadata = new OpfMetadataFile(_ncxEntry); _opfMetadata = new OpfMetadataFile(_opfEntry); // Znajdź i wczytaj wszystkie rozdziały dokumentu _sections = sections.Select(e => new ContentSection(e)).ToList(); // Usuń te pliki z archiwum - zostaną ponownie zapakowane przy zapisie pliku _file.RemoveEntries(sections.Union(new ZipEntry[] { _ncxEntry }).Union(new ZipEntry[] { _opfEntry }).ToArray()); }
public EpubFile(string filePath, Encoding encoding) { // Załaduj archiwum _file = new ZipFile(filePath, encoding); // Zapamiętaj referencje do plików, które mogą ulec zmianie ZipEntry _ncxEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == ncxFileName); ZipEntry _opfEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == opfFileName); IEnumerable<ZipEntry> sections = _file.Entries.Where(f => Path.GetExtension(f.FileName) == ".html"); // Rozpakuj i rozczytaj pliki metadanych (content.opf) i spisu treści (toc.ncx) _ncxMetadata = new OpfMetadataFile(_ncxEntry); _opfMetadata = new OpfMetadataFile(_opfEntry); // Znajdź i wczytaj wszystkie rozdziały dokumentu _sections = sections.Select(e => new ContentSection(e)).ToList(); // Usuń te pliki z archiwum - zostaną ponownie zapakowane przy zapisie pliku _file.RemoveEntries(sections.Union(new ZipEntry[] { _ncxEntry }).Union(new ZipEntry[] { _opfEntry }).ToArray()); }