2016-11-28 47 views
1

我想創建一個zip文件並通過VBS代碼將文件複製到它。當我運行下面的VBS代碼時,它正在成功運行。 Outcome.zip是越來越創建,但沒有文件被複制文件沒有被複制到使用VBS代碼的zip文件

Here is my code : 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set ts = fso.OpenTextFile("C:\apace-jmeter-3\bin\Results\outcome.zip", 2, True) 
ts.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0)) 
Set fso = nothing 
Set ts = nothing 

WScript.Sleep 5000 


Set objShell = CreateObject("Shell.Application") 
Set DestFldr=objShell.NameSpace("C:\apace-jmeter-3\bin\Results\outcome.zip") 
Set SrcFldr=objShell.NameSpace("C:\Users\chitra.balasubramani\Desktop\Mail") 
DestFldr.CopyHere SrcFldr 
+0

的[複製文件夾的內容,將創建的.zip文件:「找不到文件或沒有讀取權限」]可能的複製(http://stackoverflow.com/questions/14699767/copy-folder-contents-to-a-created-zip-file-file-not-found-or-no-read-permissi) – rene

+0

我試着關閉zip文件。它仍然顯示拒絕訪問錯誤 –

+0

您的代碼以包含該調用和確切的錯誤消息。 – rene

回答

0

文件複製與.CopyHere方法是異步的,你應該添加壓縮文件計數檢查腳本退出,這樣複製就不會被打斷了。看看下面的例子:

sDest = "C:\apace-jmeter-3\bin\Results\outcome.zip" 
sSrc = "C:\Users\chitra.balasubramani\Desktop\Mail" 

CreateObject("Scripting.FileSystemObject").OpenTextFile(sDest, 2, True).Write _ 
    "PK" & Chr(5) & Chr(6) & String(18, Chr(0)) 

With CreateObject("Shell.Application") 
    Set oDestFldr = .NameSpace(sDest) 
    Set oSrcFldr = .NameSpace(sSrc) 
    oDestFldr.CopyHere oSrcFldr.Items 
    Do 
     WScript.Sleep 100 
    Loop Until oDestFldr.Items.Count = oSrcFldr.Items.Count 
End With 
+0

嘗試了上述方法。獲取訪問被拒絕的錯誤。試圖添加關閉文件。仍然存在拒絕錯誤。 –

+0

如果dest文件夾是「Set DestFldr = objShell.NameSpace(」C:\ apace-jmeter-3 \ bin \ Results \ Temp「)」,則Copy正在工作。 如果dest設置爲DestFldr = objShell.NameSpace(「C:\ apace-jmeter-3 \ bin \ Results \ outcome.zip」)「,獲取訪問被拒絕錯誤 –

+0

@ChitraBalasubramani嘗試省略」CreateObject 「Scripting.FileSystemObject」)。OpenTextFile(sDest,2,True).Write「PK」&Chr(5)&Chr(6)&String(18,Chr(0))'(just comment it)並創建一個空zip文件之前啓動腳本 – omegastripes

相關問題