Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
 protected override IEnumerable <RarVolume> LoadVolumes(IEnumerable <Stream> streams)
 {
     return(RarArchiveVolumeFactory.GetParts(streams, ReaderOptions));
 }
Ejemplo n.º 3
0
 protected override IEnumerable <RarVolume> LoadVolumes(FileInfo file)
 {
     return(RarArchiveVolumeFactory.GetParts(file, ReaderOptions));
 }