Maison  >  Article  >  développement back-end  >  Comment décompresser des fichiers ZIP protégés par mot de passe dans Go 1.2 à l'aide de 7zip ?

Comment décompresser des fichiers ZIP protégés par mot de passe dans Go 1.2 à l'aide de 7zip ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 03:12:02974parcourir

How to Unzip Password-Protected ZIP Files in Go 1.2 Using 7zip?

Décompression de fichiers ZIP protégés par mot de passe dans Go 1.2

Le package os/exec offre un moyen pratique d'interagir avec les commandes externes. Pour décompresser des fichiers ZIP cryptés à l'aide de 7zip dans Go 1.2, considérez ce qui suit :

Le package archive/zip fournit une fonctionnalité de base de manipulation ZIP. Au lieu de l'utiliser pour extraire des fichiers ZIP protégés par mot de passe, vous pouvez utiliser 7zip via os/exec.

Voici une illustration :

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

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

Exemple de programme avec 7zip

<code class="go">package main

import (
    "fmt"
    "os"
    "os/exec"
    "path/filepath"
    "strings"
)

var (
    // Your variables and paths...
)

func main() {
    fmt.Println("# Setup")
    //...
    fmt.Println("# Answer to question...")
    extractZipWithPassword()
    //...
    fmt.Println("Done.")
}</code>

Sortie :

# Setup
# Answer to question...
Unzipping `test/src/sample.zip` to directory `test/extracted`
7za e test/src/sample.zip -otest/extracted -p"42" -aoa
Reading test/extracted/name.txt
Done.

Cette approche vous permet de décompresser des fichiers ZIP protégés par mot de passe à l'aide de 7zip dans Go 1.2.

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