Maison >développement back-end >Golang >Comment décompresser des fichiers Zip protégés par mot de passe dans Golang ?

Comment décompresser des fichiers Zip protégés par mot de passe dans Golang ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 01:48:29734parcourir

How to Unzip Password-Protected Zip Files in Golang?

Décompression de fichiers Zip protégés par mot de passe dans Golang

La récente version de Golang 1.2 a introduit le package archive/zip. Cependant, il semble offrir une fonctionnalité zip de base et ne prend pas en charge la décompression des fichiers zip protégés par mot de passe. Pour résoudre ce problème, une approche alternative consiste à utiliser 7zip.

Solution : utiliser 7zip via le package os/exec de Go

Étant donné que 7zip fournit une fonctionnalité zip robuste, y compris un mot de passe -décompression protégée, nous pouvons exploiter le package os/exec de Go pour exécuter des commandes 7zip à partir de notre code Go.

Exemple de code

Le code Go suivant montre comment extraire un fichier zip protégé par mot de passe à l'aide de 7zip :

<code class="go">import (
    "fmt"
    "os"
    "os/exec"
)

func main() {
    zipPath := "path/to/password-protected.zip"
    extractPath := "path/to/extract/to"
    password := "secret"

    // Construct the 7zip command string
    commandString := fmt.Sprintf(`7za e %s -o%s -p"%s" -aoa`, zipPath, extractPath, password)
    commandSlice := strings.Fields(commandString)

    // Execute the 7zip command
    c := exec.Command(commandSlice[0], commandSlice[1:]...)
    err := c.Run()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Unzipped password-protected zip file to %s\n", extractPath)
}</code>

Utilisation

  • Assurez-vous que 7zip est installé et accessible sur votre système.
  • Ajustez les variables zipPath et extractPath aux emplacements réels du fichier zip protégé par mot de passe et au répertoire d'extraction souhaité, respectivement.
  • Exécutez le programme Go pour effectuer l'extraction zip protégée par mot de passe.

Cette solution utilise efficacement la fonctionnalité zip éprouvée de 7zip, offrant aux développeurs Golang un moyen simple de gérer les fichiers zip protégés par mot de passe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn