Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解压缩压缩的二进制文件_C#_Vb.net_Winforms_Gzip_Zlib - Fatal编程技术网

C# 解压缩压缩的二进制文件

C# 解压缩压缩的二进制文件,c#,vb.net,winforms,gzip,zlib,C#,Vb.net,Winforms,Gzip,Zlib,我有压缩文件(二进制文件/压缩字符串-我不确定它是什么, 我正试图用c#/vb.net解压这个文件, 我试着用Gzip解压它: Private Shared Function gzuncompress(ByVal data() As Byte) As Byte() Dim input As MemoryStream = New MemoryStream(data) Dim gzip As GZipStream = New GZipStream(input, Co

我有压缩文件(二进制文件/压缩字符串-我不确定它是什么,
我正试图用c#/vb.net解压这个文件,
我试着用Gzip解压它:

 Private Shared Function gzuncompress(ByVal data() As Byte) As Byte()
        Dim input As MemoryStream = New MemoryStream(data)
        Dim gzip As GZipStream = New GZipStream(input, CompressionMode.Decompress)
        Dim output As MemoryStream = New MemoryStream
        gzip.CopyTo(output)
        Return output.ToArray
    End Function


但是有一个例外(其中:gzip.CopyTo(output)):



但当我试图用php解压它时,它成功了:)。


您可以在此处检查代码:

有人有php的gzuncompress c#/vb.net替代方案吗?

即使有一个extarnal exe文件可以实现与php的gzuncompress函数相同的功能,这也是一个非常好的答案,

种类:

Process.start("c:\umcompress.exe -f c:\list3 -o c:\res.txt")
注意:一个好的例子比解释要好

更新: 文件的前30个字节:

78 DA 8C BD 79 F4 5D D7 55 26 78 65 0D F1 24 0F 89 E3 98 4C 5C 47 21 71 E2 C8 B9 E7 9E E1
那是一条小溪。zlib格式如中所述,由一个两字节的头文件和一个围绕放气流的四字节尾文件组成。您将需要编写自己的代码来处理头文件和尾文件,并且可以使用来解压缩deflate流


或者您可以使用直接处理zlib流的方法。

结论:压缩不能像我想的那样是GZip兼容的,所以如果php的gzuncompress可以解压,可能是压缩字符串?(如果是,我应该怎么做才能通过c#/vb.net解压压缩字符串?),注意:这是文件:(你认为它是什么?)(是的,我有很多问题,因为这是我第一次尝试类似的东西)我建议你看看DotNetZip,我已经使用过好几次了,它总是比框架中的内置类好——好的,谢谢(我想我已经检查过了,但我会再检查一次)。没有gzip头。可能会泄气。
php header('Content-Type: text/html; charset=utf-8');

$list = file_get_contents('http://haxball.com/list3');

$list = gzuncompress($list);

$len = implode('', unpack('n*', $list));

$bytes = unpack('c*', $list);

$string = implode('', array_map('chr', $bytes));

echo $string;
Process.start("c:\umcompress.exe -f c:\list3 -o c:\res.txt")
78 DA 8C BD 79 F4 5D D7 55 26 78 65 0D F1 24 0F 89 E3 98 4C 5C 47 21 71 E2 C8 B9 E7 9E E1