Как распаковать zip-файл, защищенный паролем, используя Access VBA и зашифрованный пароль - PullRequest
0 голосов
/ 14 ноября 2018

Это должно работать как с Windows 7, так и с Windows 10. Я преобразую очень ручной процесс, основанный на Excel VBA, для клиентов, связывающих MS Access через ODBC с его базой данных Pervasive базы данных его программы MRP.

Я нашел другую ветку, где они использовали Access VBA для распаковки файла, но я не могу публиковать на этом сайте, даже если у меня есть учетная запись, поэтому я пишу здесь:

https://answers.microsoft.com/en-us/office/forum/office_2007-access/how-do-i-extract-zip-files-through-ms-access/e3720f53-2413-409b-ad0b-bbfb67e823e4

Код, используемый в этой ссылке, выглядит следующим образом.Я еще не запускал его.Было просто интересно, как включить зашифрованное значение пароля для получения желаемого результата:

Sub ImportZippedFile(ByVal sZipFileName As Variant) 

  Dim oApp As Object
  Dim fileNameInZip As Variant

  Dim sFileNameFolder As Variant

  Dim vLocalZipName as Variant 

 vLocalZipName =sZipFileName

  'use system temp folder to extract zipped file to.
  sFileNameFolder = Environ("Temp") & "\Excel_Tmp\"

  'Extract the file into the newly created folder
  Set oApp = CreateObject("Shell.Application")

  'list all the file names within the zip file
  For Each fileNameInZip In oApp.Namespace(vLocalZipName ).items
    msgbox filenameinzip


    oApp.Namespace(sFileNameFolder).CopyHere _
      oApp.Namespace(vLocalZipName ).items.item(CStr(fileNameInZip))

  Next fileNameInZip

  Set oApp = Nothing
End Sub

Однако zip-файл в этом примере, очевидно, не был защищен паролем.Мой клиент имеет каталог, полный защищенных паролем zip-файлов.Он использует Excel VBA и таблицу базы данных с именами файлов и зашифрованным паролем, необходимым для распаковки файла.Его код вызывает WinZip из оболочки Excel VBA и предоставляет зашифрованный пароль в качестве параметра для WinZip, чтобы он мог разархивировать файл.

Его текущий код использует Winzip под Windows 7. Я на Windows 10,и когда я установил Winzip на мою машину, он заморозил File Explorer, и я не мог просматривать свои подкаталоги или каталоги.Когда я удалил WInzip, все снова было хорошо.

какой код позволил бы мне разархивировать файл, используя только Access VBA, если у меня был зашифрованный пароль?

Зашифрованный пароль был сгенерированего программа MRP Sage.

1 Ответ

0 голосов
/ 14 ноября 2018

Я рассмотрел архивирование и разархивирование «способом Windows Explorer» в моих статьях:

Архивирование и распаковка файлов и папок с помощью VBA в проводнике Windows

но они не имеют ничего общего с зашифрованными zip-файлами, поскольку вы не можете сделать это изначально.

Тем не менее, вы можете использовать Командную строку WinZip , передавая это, передавая ему правильную командную строку.

...