private void InternalRead(BinaryReader reader) { _header = reader.ReadStructure<CVMDirectoryListingHeader>(CVMDirectoryListingHeader.SIZE); _subEntries = new CVMDirectoryListingEntry[_header.entryCount]; for (int i = 0; i < _header.entryCount; i++) { _subEntries[i] = new CVMDirectoryListingEntry(reader, this); } reader.AlignPosition(16); for (int i = 0; i < _header.entryCount; i++) { if (i > 1 && _subEntries[i].Flags.HasFlagUnchecked(RecordFlags.DirectoryRecord)) { _subEntries[i].DirectoryListing = new CVMDirectoryListing(reader, _subEntries[i]); } } }
internal CVMDirectoryListing(BinaryReader reader, CVMDirectoryListingEntry originEntry) { _originEntry = originEntry; InternalRead(reader); }