首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

跪求 自定义压缩算法(多资料压缩)

2012-08-27 
跪求 自定义压缩算法(多文件压缩)我是一名高中生……学校的研究性学习课题,我要设计一个小程序,但是遇到个坑

跪求 自定义压缩算法(多文件压缩)
我是一名高中生……

学校的研究性学习课题,我要设计一个小程序,但是遇到个坑爹的问题……

我用 WinRAR 将若干个文件 带密码压缩 成 Zip 格式。然后用我的Delphi程序在需要时解压。

但是大家都知道360的坑爹威力的,它在扫描文件的时候,只要发现是带密码的压缩包,就老是不停地弹出窗口要输入密码,这其实已经变成了一种骚扰……如果老师看到这个,很可能会影响我们小组的课题分数。

而我只是个业余Delphi爱好者,自己实在没有能力编写一个压缩算法,我之前在网上找到一些,但都只是针对单个文件的压缩,没有多个文件同时压缩至一个包的。

So……想请教一下各位高手,有没有什么控件或是什么算法,可以将多个文件压缩成一个压缩包,并且压缩后生成的压缩包,像WinRAR和好压之类的软件,也无法判断出它是个压缩包?这样360分析文件的时候,不会认为那是一个压缩包,也就不会跳出来骚扰了……


[解决办法]
Zlib+自定义文件头,或者 异或(XOR)变码
[解决办法]
1楼说的不错,定义好文件头,将所有需要压缩的所有文件的长度(大小写进去),然后将需要压缩的文件用流加载,再让zlib压缩后,再次用流拼合为一个,保存。
解压时候先读取文件头得到所有各个文件的长度数据,分段复制流出来,用zlib解压,分别保存就好。
[解决办法]
简单点,你用winrar加密压缩好后,把文件前面N个字节的内容改一下嘛,后缀名也改下,360就认不到它是压缩文件了。需要时,再改回来
[解决办法]
或者可以这样:
先自定义一个文件,将所有文件都放进这个文件当中,并记录下大小和路径文件名,再用zlib压缩。
解压时先解压,再根据文件信息把一个文件分解成多个。

热点排行