如何利用zip将压缩文件进行覆盖式解压?

时间:2022-09-14 11:52:56
小弟想做一个自动FTP下载更新压缩包的工具
1,比较FTP服务器上的update.zip和本地c:\aa\update.zip的“修改日期”(或创建日期)
   FTP上比较新的话,就下载。
2,解压该文件,覆盖c:\1234目录下的同名文件。

问题:
1,怎样取得两个update.zip的日期值?
2,怎样在VB中调用zip?

谢谢!

9 个解决方案

#1


问题一:怎样取得两个update.zip的日期值?
    答:你应该是问取文件的日期信息吧,如果是这样,用FileDateTime可以取得修改日期信息
    例子:msgbox FileDateTime("C:\AUTOEXEC.BAT")

问题二:怎样在VB中调用zip?
    答:网上有很多压缩和解压ZIP的控件或DLL库可以使用,下载来看看就可以了。


题外话:我是使用WinRAR作处理的,因为现在的电脑上基本都会安装他,而压缩比也比ZIP强。
        通常我会在程序安装时检测是否安装了WinRAR,如果没有安装,我就帮他自动安装一
        个(把WinRAR整个封包在安装程序中),确保系统安装了WinRAR后,VB只要调用
        WinRAR的命令就可以实现压缩或解压的操作了。
        解压命令:
        WinRAR.Exe X -O+ -Y -H -R -EP2 C:\Skins.rar *.* C:\Skins

#2


因为单位不允许用RAR之类的共享软件,所以用的是内部开发版的ZIP

filedatetime貌似不能获取FTP服务器上的文件日期信息……

#3


原来是这样,建议你先了解FTP协议,然后再搞。
网上有很多FTP客户端的代码可以下载参考一下,可以取得
文件日期信息的。
FileDateTime虽然不能取得FTP的日期,但可以取本地的
文件修改日期。也是你要对比使用的参数之一。

对于压缩文件,建议你使用别人开发好的控件或库来使用.

#4


有没有人给个例子?从头搞FTP太累了!

#5


谁给个xceedzip.ocx的下载链接啊

#6


搞开发的嫌累,那倒不如就转到应用层去吧,呵呵,花点钱有人去愿意累的。
其实Microsoft的API中有FTP相关的API函数,全在wininet.dll里,相对
来说要比WinSock搞FTP简单点,但是如果你觉得累的话了解了也没用,因为
不会很简单。虽然Inet控件支持FTP,但要灵活就不行了,要不你就自己找找
有什么简单的控件吧。呵呵。

#7


需要那么麻烦吗?

按照你的说法,做什么都要从头去了解,那神仙也学不了那么多东西!
为了FTP里取个文件日期,我就要去学那么多东西,时间上来不及,精力上也搭不了。
再说,我本来就不是搞开发的。

所以,换个方式,做个INI文件,在里面写上更新日期用来比较。我就不用学FTP了

#8


兄弟,做事的成与败在于一个心态,如果你认为你不懂的东西就很难,
而且不愿意了解,您怎么都不会了解的。不要说“神仙也学不了那么多
东西!”,如果真是“神仙”,只要他愿意,他就有的是时间去学。
其实我搞FTP的时候学了三种方法去实现。
1、Winsock(基础的FTP协议实现,能写出服务器和客户端)
2、wininet API(实现FTP客户端)
3、Inet控件(最简单的FTP下载文件方法)
这三种方法我从学习到搞出具体的程序的累计时间也就两个多星期。
你问的问题放了这么久,结果还是什么都没懂,花大量的时间去找捷径,
找不到就等,还不如具体了解来得快。但是因为你不愿意,所以就是现
在的结果。
如果你的心态是“我本来就不是搞开发的”,可能因为你的“强项”和
自愿不在搞开发这方面,那我劝你最好不要涉及到这个开发的行业,因
为搞开发有时候就等于搞创造,没有一定的知识量怎么去创造,难道创
造些小儿科的东西吗?还不如你直接就置身事外,去别的领域去发挥你
自己认为的“强项”。这个开发行业的东西你还是留给搞开发的去做行
了。虽然可能要给点钱,但也是值得的。

#9


可能我和你的学习方法不一样吧
按照我理解的你的意思,你的学习方法是这样的:
发现问题==>学习相关知识(涉及到的多多少少都学习、了解一些)==>解决问题

而我的学习方法是:
发现问题==>在已知的方法内找捷径(能够最快、学习最少知识)==>解决问题
等问题解决了,再回过头去复习、学习周边知识

时间对我很重要!
现在问题已经解决了一半,该去学xceedzip.ocx的用法了。
等这个工具做好,我会回头来向你请教Inet的。(这个介绍很多,可惜都不全面)

#1


问题一:怎样取得两个update.zip的日期值?
    答:你应该是问取文件的日期信息吧,如果是这样,用FileDateTime可以取得修改日期信息
    例子:msgbox FileDateTime("C:\AUTOEXEC.BAT")

问题二:怎样在VB中调用zip?
    答:网上有很多压缩和解压ZIP的控件或DLL库可以使用,下载来看看就可以了。


题外话:我是使用WinRAR作处理的,因为现在的电脑上基本都会安装他,而压缩比也比ZIP强。
        通常我会在程序安装时检测是否安装了WinRAR,如果没有安装,我就帮他自动安装一
        个(把WinRAR整个封包在安装程序中),确保系统安装了WinRAR后,VB只要调用
        WinRAR的命令就可以实现压缩或解压的操作了。
        解压命令:
        WinRAR.Exe X -O+ -Y -H -R -EP2 C:\Skins.rar *.* C:\Skins

#2


因为单位不允许用RAR之类的共享软件,所以用的是内部开发版的ZIP

filedatetime貌似不能获取FTP服务器上的文件日期信息……

#3


原来是这样,建议你先了解FTP协议,然后再搞。
网上有很多FTP客户端的代码可以下载参考一下,可以取得
文件日期信息的。
FileDateTime虽然不能取得FTP的日期,但可以取本地的
文件修改日期。也是你要对比使用的参数之一。

对于压缩文件,建议你使用别人开发好的控件或库来使用.

#4


有没有人给个例子?从头搞FTP太累了!

#5


谁给个xceedzip.ocx的下载链接啊

#6


搞开发的嫌累,那倒不如就转到应用层去吧,呵呵,花点钱有人去愿意累的。
其实Microsoft的API中有FTP相关的API函数,全在wininet.dll里,相对
来说要比WinSock搞FTP简单点,但是如果你觉得累的话了解了也没用,因为
不会很简单。虽然Inet控件支持FTP,但要灵活就不行了,要不你就自己找找
有什么简单的控件吧。呵呵。

#7


需要那么麻烦吗?

按照你的说法,做什么都要从头去了解,那神仙也学不了那么多东西!
为了FTP里取个文件日期,我就要去学那么多东西,时间上来不及,精力上也搭不了。
再说,我本来就不是搞开发的。

所以,换个方式,做个INI文件,在里面写上更新日期用来比较。我就不用学FTP了

#8


兄弟,做事的成与败在于一个心态,如果你认为你不懂的东西就很难,
而且不愿意了解,您怎么都不会了解的。不要说“神仙也学不了那么多
东西!”,如果真是“神仙”,只要他愿意,他就有的是时间去学。
其实我搞FTP的时候学了三种方法去实现。
1、Winsock(基础的FTP协议实现,能写出服务器和客户端)
2、wininet API(实现FTP客户端)
3、Inet控件(最简单的FTP下载文件方法)
这三种方法我从学习到搞出具体的程序的累计时间也就两个多星期。
你问的问题放了这么久,结果还是什么都没懂,花大量的时间去找捷径,
找不到就等,还不如具体了解来得快。但是因为你不愿意,所以就是现
在的结果。
如果你的心态是“我本来就不是搞开发的”,可能因为你的“强项”和
自愿不在搞开发这方面,那我劝你最好不要涉及到这个开发的行业,因
为搞开发有时候就等于搞创造,没有一定的知识量怎么去创造,难道创
造些小儿科的东西吗?还不如你直接就置身事外,去别的领域去发挥你
自己认为的“强项”。这个开发行业的东西你还是留给搞开发的去做行
了。虽然可能要给点钱,但也是值得的。

#9


可能我和你的学习方法不一样吧
按照我理解的你的意思,你的学习方法是这样的:
发现问题==>学习相关知识(涉及到的多多少少都学习、了解一些)==>解决问题

而我的学习方法是:
发现问题==>在已知的方法内找捷径(能够最快、学习最少知识)==>解决问题
等问题解决了,再回过头去复习、学习周边知识

时间对我很重要!
现在问题已经解决了一半,该去学xceedzip.ocx的用法了。
等这个工具做好,我会回头来向你请教Inet的。(这个介绍很多,可惜都不全面)