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
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!