internal IEnumerable <RarFilePart> GetVolumeFileParts() { MarkHeader previousMarkHeader = null; foreach (RarHeader header in headerFactory.ReadHeaders(GetStream())) { switch (header.HeaderType) { case HeaderType.ArchiveHeader: { ArchiveHeader = header as ArchiveHeader; } break; case HeaderType.MarkHeader: { previousMarkHeader = header as MarkHeader; } break; case HeaderType.FileHeader: { FileHeader fh = header as FileHeader; if (!fh.FileFlags.HasFlag(FileFlags.DIRECTORY)) { RarFilePart fp = CreateFilePart(fh, previousMarkHeader); yield return(fp); } else if (options.HasFlag(RarOptions.GiveDirectoryEntries)) { RarFilePart fp = CreateFilePart(fh, previousMarkHeader); yield return(fp); } } break; } } }
internal RarReaderEntry(bool solid, RarFilePart part) { this.Part = part; IsSolid = solid; }