Example #1
0
        private void ReadFile()
        {
            while (Reader.BaseStream.Position != Reader.BaseStream.Length)
            {
                if (SrrStream.Position + headerLength > SrrStream.Length)
                {
                    break;
                }
                var rarBlock = new RarBlock(Reader);

                //We only care about these block types, the rest are useless and the RarBlock class will handle that
                switch (rarBlock.Type)
                {
                case SRRBlockType.SrrHeader:
                    Header = new SrrHeaderBlock(rarBlock);
                    break;

                case SRRBlockType.SrrStoredFile:
                    StoredFiles.Add(new SrrStoredFileBlock(rarBlock));
                    break;

                case SRRBlockType.SrrRarFile:
                    RarFiles.Add(new SrrRarFileBlock(rarBlock));
                    break;

                case SRRBlockType.RarPackedFile:
                    PackedFiles.Add(new RarFileHeaderBlock(rarBlock));
                    break;
                }
            }
            Reader.Close();
        }
Example #2
0
 public virtual void ReadBlock(RarBlock readBlock)
 {
     Crc            = readBlock.Crc;
     RawType        = readBlock.RawType;
     Type           = readBlock.Type;
     Flags          = readBlock.Flags;
     BlockSize      = readBlock.BlockSize;
     AdditionalSize = readBlock.AdditionalSize;
     BlockData      = readBlock.BlockData;
 }
Example #3
0
 public RarBlock(RarBlock readBlock)
 {
     ReadBlock(readBlock);
     ReadData();
 }
Example #4
0
 public RarFileHeaderBlock(RarBlock readBlock) : base(readBlock)
 {
 }
Example #5
0
 public SrrRarFileBlock(RarBlock readBlock) : base(readBlock)
 {
 }
Example #6
0
 public SrrStoredFileBlock(RarBlock readBlock) : base(readBlock)
 {
 }
Example #7
0
 public SrrHeaderBlock(RarBlock readBlock) : base(readBlock)
 {
 }