public BSA105(FileInfo file, Header header, FolderRecord[] folders, FileNameBlock filenames) { this.file = file; this.header = header; this.folders = folders; this.filenames = filenames; }
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)); }