Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
 internal RarReaderEntry(bool solid, RarFilePart part)
 {
     this.Part = part;
     IsSolid = solid;
 }