コード例 #1
0
        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);
                    }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: Global.cs プロジェクト: pebakery/pebakery
        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);
                }
            }));
        }