У меня есть файл .zip, который начинается с родительского каталога. Мне нужно прочитать этот каталог из файла, а затем поискать на моем HD, чтобы увидеть, существует ли это имя каталога. Если он существует, я удаляю его и заменяю его содержимым .zip-файла.
Все это я могу сделать, кроме чтения .zip без фактического разархивирования файла.
Размер файла .zip может превышать 2 ГБ, поэтому я хочу избегать разархивирования, чтения директории и копирования.
Причина, по которой я не просто разархивирую непосредственно в папку и принудительно перезаписываю, заключается в том, что по какой-то причине при использовании метода CopyHere
для разархивирования он игнорирует переключатели, которые обычно вызывают перезапись, и по-прежнему запрашивает они хотят перезаписать.
Код для распаковки файлов:
Set objSA = CreateObject("Shell.Application")
Set objSource = objSA.NameSpace(pathToZipFile).Items ()
Set objTarget = objSA.NameSpace(extractTo)
objTarget.CopyHere objSource,4