/// <summary>
        /// Initializes a new instance of the <see cref="NefsHeaderPart2"/> class.
        /// </summary>
        /// <param name="items">The list of items in the archive.</param>
        /// <param name="part3">Header part 3.</param>
        internal NefsHeaderPart2(NefsItemList items, NefsHeaderPart3 part3)
        {
            this.entriesByIndex = new List <NefsHeaderPart2Entry>();

            foreach (var item in items.EnumerateDepthFirstByName())
            {
                var entry = new NefsHeaderPart2Entry();
                entry.Data0x00_DirectoryId.Value     = item.DirectoryId.Value;
                entry.Data0x04_FirstChildId.Value    = items.GetItemFirstChildId(item.Id).Value;
                entry.Data0x08_OffsetIntoPart3.Value = part3.OffsetsByFileName[item.FileName];
                entry.Data0x0c_ExtractedSize.Value   = item.DataSource.Size.ExtractedSize;
                entry.Data0x10_Id.Value = item.Id.Value;

                this.entriesByIndex.Add(entry);
            }
        }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NefsHeader"/> class.
 /// </summary>
 /// <param name="intro">Header intro.</param>
 /// <param name="toc">Header intro table of contents.</param>
 /// <param name="part1">Header part 1.</param>
 /// <param name="part2">Header part 2.</param>
 /// <param name="part3">Header part 3.</param>
 /// <param name="part4">Header part 4.</param>
 /// <param name="part5">Header part 5.</param>
 /// <param name="part6">Header part 6.</param>
 /// <param name="part7">Header part 7.</param>
 /// <param name="part8">Header part 8.</param>
 public NefsHeader(
     NefsHeaderIntro intro,
     NefsHeaderIntroToc toc,
     NefsHeaderPart1 part1,
     NefsHeaderPart2 part2,
     NefsHeaderPart3 part3,
     NefsHeaderPart4 part4,
     NefsHeaderPart5 part5,
     NefsHeaderPart6 part6,
     NefsHeaderPart7 part7,
     NefsHeaderPart8 part8)
 {
     this.Intro           = intro ?? throw new ArgumentNullException(nameof(intro));
     this.TableOfContents = toc ?? throw new ArgumentNullException(nameof(toc));
     this.Part1           = part1 ?? throw new ArgumentNullException(nameof(part1));
     this.Part2           = part2 ?? throw new ArgumentNullException(nameof(part2));
     this.Part3           = part3 ?? throw new ArgumentNullException(nameof(part3));
     this.Part4           = part4 ?? throw new ArgumentNullException(nameof(part4));
     this.Part5           = part5 ?? throw new ArgumentNullException(nameof(part5));
     this.Part6           = part6 ?? throw new ArgumentNullException(nameof(part6));
     this.Part7           = part7 ?? throw new ArgumentNullException(nameof(part7));
     this.Part8           = part8 ?? throw new ArgumentNullException(nameof(part8));
 }