Имя: Пароль:
IT
Админ
Вопрос по созданию zip-архива средствами Windows Shell
0 NorthWind
 
09.03.17
17:08
Добрый день!

Есть достаточно широко известный код на VBS по созданию так называемой zip-папки, т.е. zip-архива средствами чисто Windows без сторонних приблуд:

        Function CreateArchive(ZipArchivePath)

                If UCase(FileSystemObject.GetExtensionName(ZipArchivePath)) <> "ZIP" Then
                    Exit Function
                End If
          
                Dim ZipFileHeader
          
                ZipFileHeader = "PK" & Chr(5) & Chr(6) & String(18, 0)          
                FileSystemObject.CreateTextFile(ZipArchivePath, True).Write ZipFileHeader          
                Set ArchiveFolder = Shell.NameSpace (ZipArchivePath)
    
                if Not (ArchiveFolder is Nothing) Then
            CreateArchive = True
        end if

        End Function

И все бы хорошо, но как ни бьюсь, ArchiveFolder - всегда Nothing. Т.е. не создается виртуальная папка для зип-архива. Сам архив создается. Пробовал и в Win10, и в Win2003. Должно работать, но - не работает. Что за чертовщина, непонятно. Никто не баловался?
1 NorthWind
 
09.03.17
19:03
Все понятно, относительные пути для Shell.NameSpace не канают, нужно полные начиная от имени диска. Вопрос снят.
2 Лефмихалыч
 
09.03.17
21:03
Абрахамс как-то показывал, что, если при помощи wsh.shell создать папку с расширением zip, то это на самом деле будет архив. Я в том бородатом дветысяча каком-то там пробовал - работало.
3 Лефмихалыч
 
09.03.17
21:04
то есть это было не меньше, чем 10 (десять) лет назад о_0
жэ - жуть...
4 NorthWind
 
09.03.17
21:32
(2) спасибо, попробую. NameSpace ведёт себя немного странно...
5 NorthWind
 
09.03.17
21:34
(3) механизм был начиная с win2000 и winme, кажется. Если не с win98...
2 + 2 = 3.9999999999999999999999999999999...