/// <summary> /// From a passed in archive (zip, rar, 7z, 001), return all parts. /// </summary> /// <param name="part1"></param> /// <returns></returns> public static IEnumerable <FileInfo> GetFileParts(FileInfo part1) { part1.CheckNotNull(nameof(part1)); yield return(part1); int i = 1; FileInfo part = RarArchiveVolumeFactory.GetFilePart(i++, part1); if (part != null) { yield return(part); while ((part = RarArchiveVolumeFactory.GetFilePart(i++, part1)) != null) //tests split too { yield return(part); } } else { i = 1; while ((part = ZipArchiveVolumeFactory.GetFilePart(i++, part1)) != null) //tests split too { yield return(part); } } }
protected override IEnumerable <RarVolume> LoadVolumes(IEnumerable <Stream> streams) { return(RarArchiveVolumeFactory.GetParts(streams, ReaderOptions)); }
protected override IEnumerable <RarVolume> LoadVolumes(FileInfo file) { return(RarArchiveVolumeFactory.GetParts(file, ReaderOptions)); }