我有SqlDatabase。在数据库的一列中,我有二进制数据,我检查过,这是zip文件。我用实体框架将这个文件下载到byte []。在这个zip文件中,我总是有一个单独的xml文件。现在我想从byte []到byte []或string中提取这个xml文件。接下来我想从string,byte []读取这个xml并读取一个值。我不知道如何从byte []提取zip文件到byte [] / string。
祝你好运
答案 0 :(得分:1)
在System.IO.Compression中,您将找到所有必需的类。
首先使用如下方法解压缩:
static byte[] Decompress(byte[] data)
{
using (var compressedStream = new MemoryStream(data))
using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
using (var resultStream = new MemoryStream())
{
zipStream.CopyTo(resultStream);
return resultStream.ToArray();
}
}
然后,您可以在字符串中转换此字节数组,因为您有一个xml文件。 您可以使用以下代码来实现此目的:
var str = System.Text.Encoding.Default.GetString(Decompress(byteArray));
您也可以提取文件,然后将其读入字符串。
希望它有所帮助。