|
Вопрос по созданию 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...
|
|