public void ZLib() { Joveler.Compression.ZLib.ZLibCompressOptions compOpts = new Joveler.Compression.ZLib.ZLibCompressOptions() { BufferSize = BufferSize, }; Joveler.Compression.ZLib.ZLibDecompressOptions decompOpts = new Joveler.Compression.ZLib.ZLibDecompressOptions() { BufferSize = BufferSize, }; byte[] zlibData; using (MemoryStream ms = new MemoryStream()) { using (MemoryStream rms = new MemoryStream(_srcData)) using (Joveler.Compression.ZLib.ZLibStream xzs = new Joveler.Compression.ZLib.ZLibStream(ms, compOpts)) { rms.CopyTo(xzs); } zlibData = ms.ToArray(); } using (MemoryStream ms = new MemoryStream()) { using (MemoryStream rms = new MemoryStream(zlibData)) using (Joveler.Compression.ZLib.ZLibStream xzs = new Joveler.Compression.ZLib.ZLibStream(rms, decompOpts)) { xzs.CopyTo(ms); } } }
public long ZLib_Native() { Joveler.Compression.ZLib.ZLibDecompressOptions decompOpts = new Joveler.Compression.ZLib.ZLibDecompressOptions(); byte[] compData = SrcFiles[$"{Level}_{SrcFileName}.zz"]; using MemoryStream ms = new MemoryStream(); using (MemoryStream rms = new MemoryStream(compData)) using (Joveler.Compression.ZLib.ZLibStream zs = new Joveler.Compression.ZLib.ZLibStream(rms, decompOpts)) { zs.CopyTo(ms); } ms.Flush(); return(ms.Length); }
public static Task LoadMagicFileAsync(string magicGzipPath) { // Decompress and load magic.mgc.gz in the background return(Task.Run(() => { string magicFile = FileHelper.GetTempFile("magic", "mgc"); Joveler.Compression.ZLib.ZLibDecompressOptions opts = new Joveler.Compression.ZLib.ZLibDecompressOptions(); using (FileStream sfs = new FileStream(magicGzipPath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (FileStream dfs = new FileStream(magicFile, FileMode.Create, FileAccess.Write, FileShare.None)) using (Joveler.Compression.ZLib.GZipStream gz = new Joveler.Compression.ZLib.GZipStream(sfs, opts)) { gz.CopyTo(dfs); } lock (_fileTypeDetectorLock) { MagicFile = magicFile; _fileTypeDetector = new FileTypeDetector(MagicFile); } })); }