2016-12-20 10 views
1

サーバー側アプリケーションから圧縮された文字列データを受信して​​います。文字列を圧縮解除しています。受信したデータが圧縮されているかどうかを確認できます。文字列がすでに圧縮されているかどうかを確認します

string compressedData = Getting from some function; 

//What can i add here to check if the compressedData string contain already compressed string or not. 

    string decompressedData = Decompress(compressedData); 


    //Decompress Function 
     static string Decompress(string compressedText) 
      { 
       if (string.IsNullOrEmpty(compressedText)) 
        return ""; 

       byte[] gzBuffer = Convert.FromBase64String(compressedText); 
       using (MemoryStream ms = new MemoryStream()) 
       { 
        int msgLength = BitConverter.ToInt32(gzBuffer, 0); 
        ms.Write(gzBuffer, 4, gzBuffer.Length - 4); 

        byte[] buffer = new byte[msgLength]; 

        ms.Position = 0; 
        using (GZipStream zip = new GZipStream(ms, CompressionMode.Decompress)) 
        { 
         zip.Read(buffer, 0, buffer.Length); 
        } 

        return Encoding.UTF8.GetString(buffer); 
       } 
      } 

答えて

1

解凍がうまくいく

string compressedData = "Getting from some function"; 
string decompressedData = null; 

bool compressed = true; //your result 
try 
{ 
    decompressedData = Decompress(compressedData); 
} 
catch 
{ 
    compressed = false; 
} 
+0

はいを​​成功した場合は、試すことができます。お返事ありがとうございます –

+0

ようこそ! – fubo

関連する問題