Пример #1
0
        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));
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        public async Task Load(IFileSystem fileSystem, UPath filePath, LoadContext loadContext)
        {
            var fileStream = await fileSystem.OpenFileAsync(filePath);

            Files = _jarc.Load(fileStream);
        }