这似乎是一个简单的解决方案,但我搜索了网站(和网站)的解决方案,但我没有找到任何。
为了打开zip文件,我使用了以下代码:
Set zipApp = CreateObject("Shell.Application")
zip_file_count = zipApp.NameSpace("c:\1.zip").Items.Count
MsgBox zip_file_count当c:\1.zip是一个现有的zip文件时(其中包含一个文件)。因此,我期望在哪里看到带有"1“的msg框,而不是”系统找不到指定的文件“,即使文件存在(如果我尝试在windows Run> c:\1.zip中这样做,它就能工作)
我还使用这个代码打开了我刚刚创建的zip,但仍然得到了相同的错误。
我遗漏了什么吗?
顺便说一句,我使用的是windows操作系统,在某种程度上是相关的。
发布于 2014-10-05 10:32:19
对我来说,如果做了以下更改,就可以工作了
set zip_file_count = zipApp.NameSpace("c:\1.zip").Items.Count
^^^ 您要检索的是文件的计数,而不是对象引用,因此,这个set是不正确的,应该删除。
但我没有得到一个“系统找不到指定的文件”错误,而是一个“对象所需”。
在假定.zip文件可访问且不损坏的前提下编辑了,我发现获得报告错误的唯一方法是取消对zip文件夹的支持。这个问题被纠正了,重新注册了。因此,您需要显示在您的zipfldr.dll文件夹中的%systemroot%\system32文件,并将其注册到
regsvr32 "%systemroot%\system32\zipfldr.dll"发布于 2014-10-05 10:33:05
您将不会看到带有"1“的消息框,而是”对象必需“错误,因为zip_file_count应该保存一个数字,而不是一个对象,所以
set zip_file_count = zipApp.NameSpace("c:\1.zip").Items.Count应该是
zip_file_count = zipApp.NameSpace("c:\1.zip").Items.Count由于您没有报告此错误,所以您运行的代码不是您发布的代码。
如果没有设置,并给出了一个可访问的.zip文件,您发布的代码将“工作”。因此,请再次检查"c:\1.zip“及其属性/权限。
https://stackoverflow.com/questions/26201643
复制相似问题