2014-10-05 128 views
0

這似乎是一個簡單的解決方案的問題,但我搜索的網站(和網絡)的解決方案,我沒有找到任何。無法打開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」的味精盒,而不是我的「系統找不到指定的文件」,即使該文件存在(如果我嘗試在Windows中運行運行> c:\ 1.zip它作品)

我也使用這段代碼來打開我剛剛創建的zip文件,但仍然得到相同的錯誤。

有什麼我失蹤?

btw,我使用的是Windows XP操作系統是某種相關的。

回答

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" 
+0

我已經刪除了設置,仍然得到「系統找不到指定的文件」錯誤 – Shperb 2014-10-05 10:36:49

+0

@Shperb,回答更新,請測試。 – 2014-10-05 11:32:34

+0

+1願意妥協你的跑步系統來幫助他人。 – 2014-10-05 11:39:04

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 

當你沒有報告這個錯誤,你運行該代碼是不是你發佈的代碼。

沒有設置並給出可訪問的.zip文件,您發佈的代碼是'works'。因此請仔細檢查「c:\ 1.zip」及其屬性/權限。

+0

我已經刪除了設置,仍然得到「系統找不到指定的文件」的錯誤,我仔細檢查了zip文件,它在那裏。 – Shperb 2014-10-05 10:37:29

+0

您的腳本在*下運行的用戶帳戶的訪問權限*如何? IIS?在MapPath? – 2014-10-05 10:46:52

+0

我不太清楚你是什麼意思,我使用管理員訪問權限在本地運行腳本,就像我說的,如果我從不在腳本中的相同位置打開它,我可以打開並修改該文件。 – Shperb 2014-10-05 10:51:19