如何在VBA中实现Zip功能?

时间:2009-05-14 19:29:25

标签: vba zip windows-xp

最近我一直在研究vba中的应用程序,它依赖于文件的.docm文件中包含的一些文件。最初,我使用Windows XP压缩文件夹功能以编程方式提取docm的内容。这是一个最佳解决方案,因为它将内置于所有Windows XP中,并且不需要安装。但是,我遇到了一个障碍:似乎在我提取docm一定次数之后,它开始错误地说“错误,该文件已经存在”。最初,我认为我打破了一些东西并且挖得更深了,事实证明我的代码中没有错误,而是压缩文件夹中的错误。

如果系统上某个zip文件出现“文件已存在”错误,则压缩文件夹不再适用于任何同名文件,如果重命名该文件,它将重新开始工作。所以这是我的问题:如何在没有压缩文件夹的情况下在VBA中实现zip功能?额外问题:如何修复压缩文件夹?

感谢您的时间。

-Seamus

更新: 目前我使用压缩文件夹工作,我正在解决这个错误,每次错误发生时将文件重命名为新的。这工作正常,但我正在寻找更多的解决方案,而不是解决问题。

3 个答案:

答案 0 :(得分:0)

也许是一个关于红利问题的想法:在将它与VBA应用程序一起使用之前,你不能将文件重命名2次吗?首先给它一个临时名称,然后将其重命名为原始名称。

编辑: 我只是在这里猜测,但似乎不太可能从你的应用程序中解决这个问题,而是将其修复为一种Windows补丁。这意味着您的应用程序应运行的每台计算机都必须安装此修补程序才能正常运行。这不是你可以依赖的东西。所以我认为你应该坚持一个解决方法。

答案 1 :(得分:0)

This也许可以帮到你。看起来他正在使用脚本文件系统对象......

答案 2 :(得分:0)

似乎没有好办法直接在Windows中访问zip功能。似乎唯一的好方法是使用在其他答案中链接的zip文件夹复制方法。至于我遇到的问题,我每次都会使用新的文件名解决它。