public IList <IArchiveFileInfo> Load(Stream input) { using var br = new BinaryReaderX(input); // Read header _header = br.ReadType <JcmpHeader>(); // Decompress data var jarcStream = new MemoryStream(); Compressions.ZLib.Build().Decompress(new SubStream(input, 0x14, _header.compSize), jarcStream); jarcStream.Position = 0; _jarc = new Jarc(); return(_jarc.Load(jarcStream)); }
public async Task Load(IFileSystem fileSystem, UPath filePath, LoadContext loadContext) { var fileStream = await fileSystem.OpenFileAsync(filePath); using var br = new BinaryReaderX(fileStream, true); _magic = br.PeekString(); switch (_magic) { case "jARC": Files = _jarc.Load(fileStream); break; case "jCMP": Files = _jcmp.Load(fileStream); break; } }
public async Task Load(IFileSystem fileSystem, UPath filePath, LoadContext loadContext) { var fileStream = await fileSystem.OpenFileAsync(filePath); Files = _jarc.Load(fileStream); }