如何覆盖.zip中的文件

lucky8star 2011-04-29 08:48:34
我想覆盖.zi中某个文件,在程序中如何编程。现在遇到这样一个项目,对word2007进行模板开发。因为word2007文档后面加上.zip后缀名后解压后会生成很多xml文档,当我对某个xml 文档进行编辑后,拖动到 压缩文件中,再去掉.zip后缀名,打开
word文档,则会显示修改后的内容。现在在程序可以可以实现:修改文件名、解压文件、修改文件,但是如何把修改的文件
覆盖压缩文件中内容呢,请高手帮忙看看,再次发帖,我相信一定会有高人的。
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucky8star 2011-11-04
  • 打赏
  • 举报
回复
非常感谢网友的答复,我最后还是放弃了。因为我的问题不是单纯的加压缩。我主要是来处理word2007的文档的,因为word2007的文档名后缀名被改为.zip再解压会生成很多.XML文件。如果单纯的把其中解压后的文件做了些改动,再压缩,然后再将后缀名改回来,改文档就被破坏了。

说句提外话,现在delphi机会越来越少了,我转JAVA了去了。
Frank.WU 2011-05-02
  • 打赏
  • 举报
回复
当然,我也不同意解压后替换文件再压缩这种低效率的代码。
不过,VCLZIP 貌似是有版权的?
所以我自己一般用http://sourceforge.net/projects/tpabbrevia/这个组件,开源,免费,turbo power 出品嘛,turbo power 一系列东西以前可是商业收费组件哦。
不过这个组件的麻烦之处是需要修改源代码的一个地方,因为它是靠文件名来识别压缩文件类型的。。。
所以,我推荐的另外一个好东西就是 kazip 这个东西,免费,开源,速度快。不用修改源代码,使用方法和 tpabbrevia 接近。
再插一句,VCLZIP 貌似速度比较慢,这个纯我个人观点。。。
如果你只操作纯正 zip 文件,那么我建议你使用 kazip
废话说完了;
至于这两者的例子很简单,都自带 demo。

边看边写吧,如果有什么困难,可以在这里提出来,我尽量回答。

PS: 我就是一个业余学 delphi 的玩,不要问我什么高深的问题,我不会哈。
lucky8star 2011-05-02
  • 打赏
  • 举报
回复
首先很感谢各位网友回复。五一刚回来,我想说的是我并不需要解压再压缩这样的效果,因为它并不适合我的要求。是这样的,word2007的文档添加.zip后缀名以后,就会生成很多XML电子文档,我想读取某个电子文档内容,并更新,然后再去掉.zip后缀名,这样文档就显示我修改后内容。如果单纯的解压,更改、再压缩,然后再去掉.zip后缀名,这样是不行的,只有把修改后的电子文档拖放到.zip文件中覆盖原来的文件,在更改后缀名,才可以。我现在使用的是D7+VCLZIP控件。
keeley20 2011-04-30
  • 打赏
  • 举报
回复
是啊 简单点的就是解压覆盖再压缩了,但可能不适用于较大体积的zip文件。
gyk120 2011-04-30
  • 打赏
  • 举报
回复
单独的更新不知道怎么做,因为这个涉及到Shell操作
不过如果你使用控件的话就很简单了,直接先解压出来,然后更新,最后再用控件重新压缩一遍
Frank.WU 2011-04-30
  • 打赏
  • 举报
回复
很简单的嘛,先说你用什么 zip 库或者 zip 控件,以及 delphi 版本,否则难说。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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