无法打开zip文件

时间:2014-10-05 10:17:06

标签: vbscript zip

这似乎是一个简单的解决方案的问题,但我搜索了网站(和网站)的解决方案,我没有找到任何。

为了打开一个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运行> c:\ 1.zip它可以工作)

我也使用这段代码打开我刚刚创建的zip,但仍然会出现同样的错误。

我有什么遗失的吗?

不过,我使用的是Windows XP,操作系统在某种程度上是相关的。

2 个答案:

答案 0 :(得分:2)

对我来说,它可以 IF 进行以下更改

set zip_file_count = zipApp.NameSpace("c:\1.zip").Items.Count
^^^ 

您要检索的是文件数,而不是对象引用,因此,此set不正确,应删除。

但我没有得到“系统找不到指定的文件”错误,但“对象需要”

假设.zip文件可访问且未损坏,

已编辑,我发现获取报告错误的唯一方法是取消注册zip文件夹支持。问题得到纠正再次重新注册。因此,您需要zipfldr.dll文件夹中的%systemroot%\system32文件并将其注册到

regsvr32 "%systemroot%\system32\zipfldr.dll"

答案 1 :(得分:0)

您不会看到带有" 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

由于您没有报告此错误,因此您运行的代码不是您发布的代码。

如果没有Set并给出了一个可访问的.zip文件,那么您发布的代码就可以使用#39;。所以仔细检查" c:\ 1.zip"及其财产/权利。