Décompression de fichiers ZIP protégés par mot de passe dans Go 1.2
Le package archive/zip de Go 1.2 fournit des fonctionnalités de base pour gérer les archives ZIP, mais manque prise en charge de la protection par mot de passe. Pour décompresser un fichier ZIP protégé par un mot de passe, on peut utiliser le package os/exec pour appeler un outil externe tel que 7zip.
Pour ce faire, suivez ces étapes :
7za a sample.zip name.txt -p"your_password" -mem=AES256
<code class="go">import ( "fmt" "os/exec" ) 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>
Dans cet extrait de code :
<code class="go">// Shows how to extract an passsword encrypted zip file using 7zip. // By Larry Battle <https://github.com/LarryBattle> // Answer to http://stackoverflow.com/questions/20330210/golang-1-2-unzip-password-protected-zip-file // 7-zip.chm - http://sevenzip.sourceforge.jp/chm/cmdline/switches/index.htm // Effective Golang - http://golang.org/doc/effective_go.html package main import ( "fmt" "os" "os/exec" "path/filepath" "strings" ) // ... func main() { // ... extractZipWithPassword() // ... }</code>
go run main.go
Le programme extraira le fichier ZIP protégé par mot de passe dans le répertoire spécifié.
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!