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(); }
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; }
public RarBlock(RarBlock readBlock) { ReadBlock(readBlock); ReadData(); }
public RarFileHeaderBlock(RarBlock readBlock) : base(readBlock) { }
public SrrRarFileBlock(RarBlock readBlock) : base(readBlock) { }
public SrrStoredFileBlock(RarBlock readBlock) : base(readBlock) { }
public SrrHeaderBlock(RarBlock readBlock) : base(readBlock) { }