哪位给个生成ZIP文件的控件或者类

snowshow 2004-08-06 06:15:09
最好有示范源码
谢谢了^_^
...全文
156 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bpaibgy 2004-08-09
  • 打赏
  • 举报
回复
ZTV偶用了,很不错.不过我是用在DELPHI上的
myy 2004-08-07
  • 打赏
  • 举报
回复
//控件 TAbZipKit *abzk;

//解压zip
try
{
try
{
abzk->BaseDirectory="c:\\winnt\\temp";
abzk->Password="";
abzk->ExtractOptions=TAbExtractOptions()<<eoCreateDirs<<eoRestorePath;
abzk->FileName="c:\\aaa.zip";
abzk->ExtractFiles("*.*");
}
catch(...)
{
ShowMessage("解压zip文件错误");
}
}
__finally
{
abzk->CloseArchive();
}

//生成zip
try
{
try
{
abzk->Password="";
abzk->StoreOptions=TAbStoreOptions()<<soStripDrive<<soRemoveDots<<soRecurse;
abzk->ZipfileComment="例子";
abzk->FileName="c:\\winnt\\temp\\sys.zip";
abzk->BaseDirectory="c:\\winnt";
abzk->AddFiles("system\\*.*");
abzk->Save();
}
catch(...)
{
ShowMessage("生成zip文件错误");
}
}
__finally
{
abzk->CloseArchive();
}
szxiaoxiao 2004-08-07
  • 打赏
  • 举报
回复
AnsiString fNameZ="";
fNameZ=文件名;
AbZipper1->FileName=GetCurrentDir()+"\\"+fNameZ;
AbZipper1->AddFiles(fName,0);
AbZipper1->CloseArchive();
CityHost 2004-08-07
  • 打赏
  • 举报
回复
去51delphi.com下一个abbrevia,不仅可以生成ZIP,还可以生成CAB
snowshow 2004-08-07
  • 打赏
  • 举报
回复
能给个Abbrevia实例吗
constantine 2004-08-06
  • 打赏
  • 举报
回复
控件找老妖要,我记得他有,要不自己搜索一下,很容易找到
myy 2004-08-06
  • 打赏
  • 举报
回复
http://sourceforge.net/projects/tpabbrevia/

最新版 3.05 bate6#
yjy1001 2004-08-06
  • 打赏
  • 举报
回复
以上原理 源自 “Copyright © 1998 王咏刚”
yjy1001 2004-08-06
  • 打赏
  • 举报
回复
这个有控件,你发邮件找子寒兄要吧
我写点压缩原理:

压缩技术
|
/------------------------------ 通用无损数据压缩 多媒体数据压缩(大多为有损压缩)
| |
/----------------\ /------------------------------------基于统计 基于字典 音频压缩 图像压缩 视频压缩
模型的压 模型的压 | | |
缩技术 缩技术 MP3等 /-------------------、 AVI
| | 二值 灰度 彩色 矢量 MPEG2等
/------\ /-------------\ 图像 图像 图像 图像
Huffman 算术 LZ77 LZ78 LZW | | | |
编码 编码 \-------------/ 传真机 FELICS GIF PostScript
| | | 标准 JPEG等 JPEG等 Windows WMF等
UNIX下 接近无损 PKZIP、LHarc、ARJ、
的COMPACT 压缩极限 UNIX下的COMPRESS
程序等 的高级应用 程序等

//--------------------------
举个例子,对下面这条只出现了 a b c 三个字符的字符串:

aabbaccbaa

字符串长度为 10,字符 a b c 分别出现了 5 3 2 次,则 a b c 在信息中出现的概率分别为 0.5 0.3 0.2,他们的熵分别为:

Ea = -log2(0.5) = 1
Eb = -log2(0.3) = 1.737
Ec = -log2(0.2) = 2.322
整条信息的熵也即表达整个字符串需要的位数为:

E = Ea * 5 + Eb * 3 + Ec * 2 = 14.855 位
回想一下如果用计算机中常用的 ASCII 编码,表示上面的字符串我们需要整整 80 位呢!现在知道信息为什么能被压缩而不丢失原有的信息内容了吧。简单地讲,用较少的位数表示较频繁出现的符号,这就是数据压缩的基本准则。

既采用统计压缩的极限压缩比率为 8:1。

zip压缩算法是基于字典模型的压缩,如“奥运会”代表了“奥林匹克运动会”这样的压缩
或 第三位置开始重复20个字符…… 等表达。
thp 2004-08-06
  • 打赏
  • 举报
回复
zihan 2004-08-06
  • 打赏
  • 举报
回复
我有一个.要给我发email
zihan06@yeah.net
铖邑 2004-08-06
  • 打赏
  • 举报
回复
Abbrevia 3.0

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧