社区
C#
帖子详情
GZipStream压缩之后返回byte[],如何判断byte[]是否被压缩过?在线请教高手
liuying2500
2009-04-20 05:03:31
public byte[] Compress(byte[] b)
{
//压缩的方法,GZipStream实现
}
byte[] retByte = Compress(b);
问题:我如何判断这个byte数组retByte是否被压缩过呢??请高手指教
...全文
451
11
打赏
收藏
GZipStream压缩之后返回byte[],如何判断byte[]是否被压缩过?在线请教高手
public byte[] Compress(byte[] b) { //压缩的方法,GZipStream实现 } byte[] retByte = Compress(b); 问题:我如何判断这个byte数组retByte是否被压缩过呢??请高手指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuying2500
2009-04-21
打赏
举报
回复
[Quote=引用 10 楼 soaringbird 的回复:]
byte[] Compress(byte[] b)
压缩返回的数组并不只是压缩后的数据,还有gzip的一些元数据的定义等等。
压缩后的那个byte[],前面都有一段相同的数据(我试了一些数据,是相同的),就是
1F-8B-08-00-00-00-00-00-04-00-ED-BD-07-60-1C-49-96-25-26-2F-6D-CA-7B-7F-4A-F5-4A-D7-E0-74-A1-08-80-60-13-24-D8-90-40-10-EC-C1-88-CD-E6-92-EC-1D-69-47-23-29-AB-2A-81-CA-65-56-65-5D-66-16-40-CC-ED-9D-BC-F7-DE-7B-EF-BD-F7-D…
[/Quote]
谢谢,经过昨天的研究,我认为你说的方式才是解决这个问题的正道,马上就结贴。
soaringbird
2009-04-20
打赏
举报
回复
byte[] Compress(byte[] b)
压缩返回的数组并不只是压缩后的数据,还有gzip的一些元数据的定义等等。
压缩后的那个byte[],前面都有一段相同的数据(我试了一些数据,是相同的),就是
1F-8B-08-00-00-00-00-00-04-00-ED-BD-07-60-1C-49-96-25-26-2F-6D-CA-7B-7F-4A-F5-4A-D7-E0-74-A1-08-80-60-13-24-D8-90-40-10-EC-C1-88-CD-E6-92-EC-1D-69-47-23-29-AB-2A-81-CA-65-56-65-5D-66-16-40-CC-ED-9D-BC-F7-DE-7B-EF-BD-F7-DE-7B-EF-BD-F7-BA-3B-9D-4E-27-F7-DF-FF-3F-5C-66-64-01-6C-F6-CE-4A-DA-C9-9E-21-80-AA-C8-1F-3F-7E-7C-1F-3F-22
所以,你可以判断byte[]前面是否包含这一段数据来判断是否是压缩过的数据。当然,限于正常的压缩数据,如果是变造的数据那就另说了。
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 8 楼 tang_fu 的回复:]
public boolen Compress(byte[] b)
{
try
{
//压缩的方法,GZipStream实现
}
catch(except e)
{
.........
}
return true;
}
boolen retByte = Compress(b);
[/Quote]
非常感谢你回复,但是我compress方法必须要返回byte[]
tang_fu
2009-04-20
打赏
举报
回复
public
boolen
Compress(byte[] b)
{
try
{
//压缩的方法,GZipStream实现
}
catch(except e)
{
.........
}
return true;
}
boolen retByte = Compress(b);
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
比较解压缩内容是否与原内容一致
[/Quote]
这个源数据我是无法判断的,client端传递到WebService的数据就算没压缩过,也是被序列化了的,都是byte[]
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
GZipStream
以前用过
你想判断的话在GZipStream里面修改下啊。
[/Quote]
能说的再稍微详细一点吗?谢谢
liuying2500
2009-04-20
打赏
举报
回复
我的程序序列化和解压缩之后都返回的是byte[],解压缩是发生在client端传递给WebService端的参数很大的时候,所以我要判断这些数据是否压缩过
wuyq11
2009-04-20
打赏
举报
回复
比较解压缩内容是否与原内容一致
supesa
2009-04-20
打赏
举报
回复
你的需求很奇怪,你为什么要判断是否要解压呢?无法从字节上判断是否压缩过。
chowyi
2009-04-20
打赏
举报
回复
GZipStream s = new GZipStream();
s.CanRead?压缩过:未
ericzhangbo1982111
2009-04-20
打赏
举报
回复
GZipStream
以前用过
你想判断的话在GZipStream里面修改下啊。
.net 利用
GZip
Stream
压缩
和解
压缩
NULL 博文链接:https://dampce032.iteye.com/blog/1553646
如何
压缩
多个文件\文件夹(
GZip
Stream
and C#)
在.Net Framework 2.0 中添加了System.IO.Compression 类来实现对文件/文件夹的
压缩
/解压(
GZip
Stream
方法),包括文档,代码,类文件
vb.net 利用.net自带的
GZip
Stream
压缩
或者解压文件的代码,不需要任何第三方控件
网上很少有用VB写的
压缩
文件的代码,但是,在网络传输,文件下载,打包发布等等方面的需求又比较多,所以,借鉴了一下C#代码的例子,改造成了VB用的类。另外加上了多层文件夹
压缩
解压。但是,因为时间有限,只是将文件全部读取到缓存处理,所以,针对大文件没有做特别的处理。例子里面有提示,根据需要自己改动一下吧。
GZip
Stream
压缩
文件称
gzip
格式
支持同时
压缩
多文件,可以选择
压缩
后的文件放置的位置。
C++
压缩
解
压缩
库
C++
压缩
解
压缩
库,VS2012版本。我只封装了解
压缩
库,如果需要可以自己封装下
压缩
的。代码齐全。
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章