Пример #1
0
 public BSA105(FileInfo file, Header header, FolderRecord[] folders, FileNameBlock filenames)
 {
     this.file      = file;
     this.header    = header;
     this.folders   = folders;
     this.filenames = filenames;
 }
Пример #2
0
        public static async Task <BSA105> Open(FileInfo file)
        {
            using var stream = file.OpenRead();

            byte[] headerBytes = new byte[Header.size];
            await stream.ReadAsync(headerBytes);

            var header = new Header(headerBytes);

            byte[] recordsBytes = new byte[header.TotalRecordsSize];
            await stream.ReadAsync(recordsBytes);

            var folders   = new FolderRecord[header.folderCount];
            var filenames = new FileNameBlock(recordsBytes, header);

            for (int i = 0; i < header.folderCount; i++)
            {
                folders[i] = new FolderRecord(recordsBytes, i, header);
            }

            return(new BSA105(file, header, folders, filenames));
        }