public RarContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder, bool extractFirstOnly = false, bool doNotExtract = false) : base(item, onPropertyChanged, pageOrder) { using var rarExtractor = new SevenZipExtractor(ContainerPath); OrderFiles(rarExtractor.ArchiveFileData); if (doNotExtract) { return; } if (extractFirstOnly) { ExtractFirst(); } else { var bg = new BackgroundWorker(); bg.DoWork += ExtractAllWork; bg.ProgressChanged += (_, _) => onPropertyChanged?.Invoke(nameof(Extracted)); bg.WorkerReportsProgress = true; bg.RunWorkerAsync(); } }
public FolderContainer(MangaInfo item, IEnumerable <FileInfo> files, MainViewModel.PageOrder pageOrder) : base(item, pageOrder) { CurrentIndex = 0; OrderFiles(files); }
protected Container(MangaInfo item, MainViewModel.PageOrder pageOrder) : base(item, pageOrder) { }
public ZipContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder) : base(item, onPropertyChanged, pageOrder) { using var archive = new ZipArchive(File.OpenRead(ContainerPath)); OrderFiles(archive.Entries); }
protected ArchiveContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder) : base(item, pageOrder) { FileDirectory = Path.Combine(StaticHelpers.TempFolder, ContainerPath.GetHashCode().ToString()); Directory.CreateDirectory(FileDirectory); UpdateExtracted = onPropertyChanged; }