Как определить, когда копирование заканчивается в VBScript?

Кто-нибудь знает метод определения завершения копирования файла в VBScript? Я использую следующее для копирования:

set sa = CreateObject("Shell.Application")  
set zip = sa.NameSpace(saveFile)  
set Fol = sa.NameSpace(folderToZip)  
zip.copyHere (Fol.items)

person tloach    schedule 29.09.2008    source источник


Ответы (2)


Do Until zip.Items.Count = Fol.Items.Count
    WScript.Sleep 300
Loop

Когда цикл завершится, ваша копия будет завершена.

Но если вы хотите только копировать, а не архивировать, лучше использовать FSO или WMI.

Если вы архивируете и хотите, чтобы они были в файле, вам нужно создать zip-файл самостоятельно, сначала с правильным заголовком. В противном случае вы получите только сжатые файлы/папки IIRC. Что-то вроде этого:

Set FSO = CreateObject( "Scripting.FileSystemObject" )
Set File = FSO.OpenTextFile( saveFile, 2, True )
File.Write "PK" & Chr(5) & Chr(6) & String( 18, Chr(0) )
File.Close
Set File = Nothing
Set FSO = Nothing

2 в OpenTextFile — ForWriting.

person olle    schedule 29.09.2008
comment
потенциально может быть заархивирован, следовательно, не используя FSO - person tloach; 29.09.2008

Возможно, вам повезет больше, если вы воспользуетесь методом копирования для FileSystemObject< /а>. Я использовал его для копирования, и это блокирующий вызов.

person Matt Dillard    schedule 29.09.2008