Write to file using CopyHere without using WScript.Sleep
        Posted  
        
            by mlevit
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by mlevit
        
        
        
        Published on 2010-05-22T17:05:36Z
        Indexed on 
            2010/05/22
            17:10 UTC
        
        
        Read the original article
        Hit count: 480
        
Hi guys,
I've written a small VBScript to creates a .zip file and then copies the contents of a specified folder into that .zip file.
I copy the files over one by one for a reason (I know I can do the whole lot at once). However my problem is when I try to copy them one by one without a WScript.Sleep between each loop iteration I get a "File not found or no read permission." error; if I place a WScript.Sleep 200 after each write it works but not 100% of the time.
Pretty much I'd like to get rid of the Sleep function and not rely on that because depending on the file size it may take longer to write therefore 200 milliseconds may not be enough etc.
As you can see with the small piece of code below, I loop through the files, then if they match the extension I place them into the .zip (zipFile)
For Each file In folderToZip.Items
    For Each extension In fileExtensions
        if (InStr(file, extension)) Then
            zipFile.CopyHere(file)
            WScript.Sleep 200
            Exit For
        End If
    Next
Next
Any suggestions on how I can stop relying on the Sleep function?
Thanks
© Stack Overflow or respective owner