OFF:
alexii пишет:Доработка потребуется: если последний item — папка с большим количеством папок и файлов — скрипт опять не успеет.
Спасибо, я что-то подобное подозревал.
Если дело именно в последнем item, доработка упрощается — если это папка, можно приложить условие к ней и так при необходимости по цепочке.
Но если не быть уверенным в "естественном" порядке добавления файлов в zip, то придётся использовать полноценную рекурсию или перебор в глубину.
Решение с проверкой .Items.Count я подсмотрел на этом форуме (см. Коллекцию, автор примера - Xameleon:
'...
Function CopyFolderToArchive(FolderPath)
If (ArchiveFolder Is Nothing) Then Exit Function
ArchiveFolder.CopyHere FolderPath
ItemsCount = ItemsCount + 1
End Function
Function CloseArchive
If (ArchiveFolder is Nothing) Then Exit Function
Set WsriptShell = CreateObject("Wscript.Shell")
If IsObject(Wscript) Then
Do
Wscript.Sleep 100
Loop Until ArchiveFolder.Items.Count => ItemsCount
Else
ServerSleep
End if
ItemsCount = 0
End Function
'...
) - сам бы к своему стыду до него, вероятно, не додумался,
а через небольшие промежутки времени проверял бы размер создаваемого ZIP до тех пор пока он не перестал бы увеличиваться - не знаю, насколько это надёжно...
Забыл пароль и потерял e-mail.