| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- using System;
 
- using System.IO;
 
- using SevenZip.Compression.LZMA;
 
- namespace UnityFS
 
- {
 
-     public static class ComparessHelper
 
-     {
 
-         public static MemoryStream Decompress7Zip(MemoryStream inStream)
 
-         {
 
-             var decoder = new Decoder();
 
-             inStream.Seek(0, SeekOrigin.Begin);
 
-             var newOutStream = new MemoryStream();
 
-             var properties = new byte[5];
 
-             if (inStream.Read(properties, 0, 5) != 5)
 
-                 throw new Exception("input .lzma is too short");
 
-             long outSize = 0;
 
-             for (var i = 0; i < 8; i++)
 
-             {
 
-                 var v = inStream.ReadByte();
 
-                 if (v < 0)
 
-                     throw new Exception("Can't Read 1");
 
-                 outSize |= ((long)(byte)v) << (8 * i);
 
-             }
 
-             decoder.SetDecoderProperties(properties);
 
-             var compressedSize = inStream.Length - inStream.Position;
 
-             decoder.Code(inStream, newOutStream, compressedSize, outSize, null);
 
-             newOutStream.Position = 0;
 
-             return newOutStream;
 
-         }
 
-         public static void Decompress7Zip(Stream compressedStream, Stream decompressedStream, long compressedSize, long decompressedSize)
 
-         {
 
-             var basePosition = compressedStream.Position;
 
-             var decoder = new Decoder();
 
-             var properties = new byte[5];
 
-             if (compressedStream.Read(properties, 0, 5) != 5)
 
-                 throw new Exception("input .lzma is too short");
 
-             decoder.SetDecoderProperties(properties);
 
-             decoder.Code(compressedStream, decompressedStream, compressedSize - 5, decompressedSize, null);
 
-             compressedStream.Position = basePosition + compressedSize;
 
-         }
 
-     }
 
- }
 
 
  |