Exemple #1
0
 /// <summary>
 /// 解压缩字节数组
 /// </summary>
 /// <param name="data">待解压缩的字节数组</param>
 /// <param name="isClearData">解压缩完成后,是否清除待解压缩字节数组里面的内容</param>
 /// <returns>已解压的字节数组</returns>
 public byte[] TarDeCompress(byte[] data, bool isClearData = true)
 {
     byte[] bytes = null;
     using (MemoryStream o = new MemoryStream())
     {
         using (MemoryStream ms = new MemoryStream(data))
         {
             using (Stream s = new TarInputStream(ms))
             {
                 s.Flush();
                 int    size   = 0;
                 byte[] buffer = new byte[BUFFER_LENGTH];
                 while ((size = s.Read(buffer, 0, buffer.Length)) > 0)
                 {
                     o.Write(buffer, 0, size);
                 }
             }
         }
         bytes = o.ToArray();
     }
     if (isClearData)
     {
         Array.Clear(data, 0, data.Length);
     }
     return(bytes);
 }
Exemple #2
0
 // Token: 0x0600001F RID: 31 RVA: 0x00002EB4 File Offset: 0x000010B4
 public static byte[] TarDeCompress(byte[] data, bool isClearData = true)
 {
     byte[] result = null;
     using (MemoryStream memoryStream = new MemoryStream())
     {
         using (MemoryStream memoryStream2 = new MemoryStream(data))
         {
             using (Stream stream = new TarInputStream(memoryStream2))
             {
                 stream.Flush();
                 byte[] array = new byte[2048];
                 int    count;
                 while ((count = stream.Read(array, 0, array.Length)) > 0)
                 {
                     memoryStream.Write(array, 0, count);
                 }
             }
         }
         result = memoryStream.ToArray();
     }
     if (isClearData)
     {
         Array.Clear(data, 0, data.Length);
     }
     return(result);
 }