Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entpacke ich passwortgeschützte ZIP-Dateien in Go?

Wie entpacke ich passwortgeschützte ZIP-Dateien in Go?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 16:32:01508Durchsuche

How to Unzip Password-Protected ZIP Files in Go?

Passwortgeschützte ZIP-Dateien in Go 1.2 entpacken

In Go 1.2 bietet das Archiv/Zip-Paket grundlegende Zip-Funktionalität, aber keine Unterstützung zum Umgang mit passwortgeschützten Dateien. Um solche Dateien zu entpacken, wird empfohlen, das os/exec-Paket in Verbindung mit externen Tools wie 7zip zu verwenden.

7zip zum Extrahieren passwortgeschützter ZIP-Dateien verwenden

Das folgende Beispiel zeigt, wie man eine passwortgeschützte ZIP-Datei mit 7zip extrahiert:

<code class="go">func extractZipWithPassword() {
    fmt.Printf("Unzipping `%s` to directory `%s`\n", zip_path, extract_path)
    commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zip_path, extract_path, zip_password)
    commandSlice := strings.Fields(commandString)
    fmt.Println(commandString)
    c := exec.Command(commandSlice[0], commandSlice[1:]...)
    e := c.Run()
    checkError(e)
}</code>

In diesem Beispiel erstellen wir eine Befehlszeichenfolge mit der ausführbaren 7za-Datei, um die ZIP-Datei zu extrahieren. Wir geben den Dateipfad, das Extraktionsverzeichnis, das Passwort und zusätzliche Optionen zum Überschreiben vorhandener Dateien und zum Aktualisieren der Archivzeitstempel (-aoa) an. Anschließend führen wir den Befehl mit der Funktion exec.Command aus und prüfen, ob Fehler vorliegen.

Zusätzliche Ressourcen

  • [Offizielle Website von 7-Zip](https ://www.7-zip.org/)
  • [7-Zip-Benutzerhandbuch](https://wiki.7-zip.org/7-Zip_User_Guide)
  • [Los os/exec-Paketdokumentation](https://golang.org/pkg/os/exec/)

Hinweis:

Während dieser Ansatz auf basiert Als externes Tool bietet es eine unkomplizierte Lösung für den Umgang mit passwortgeschützten ZIP-Dateien in Go.

Das obige ist der detaillierte Inhalt vonWie entpacke ich passwortgeschützte ZIP-Dateien in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn