Menyahzip Fail ZIP Dilindungi Kata Laluan dalam Go 1.2
Dalam Go 1.2, pakej arkib/zip menyediakan fungsi zip asas, tetapi tidak mempunyai sokongan untuk mengendalikan fail yang dilindungi kata laluan. Untuk menyahzip fail sedemikian, adalah disyorkan untuk menggunakan pakej os/exec bersama-sama dengan alatan luaran seperti 7zip.
Menggunakan 7zip untuk Mengekstrak Fail ZIP Dilindungi Kata Laluan
Contoh berikut menunjukkan cara mengekstrak fail ZIP yang dilindungi kata laluan menggunakan 7zip:
<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>
Dalam contoh ini, kami membina rentetan arahan menggunakan boleh laku 7za untuk mengekstrak fail ZIP. Kami menentukan laluan fail, direktori pengekstrakan, kata laluan dan pilihan tambahan untuk menulis ganti fail sedia ada dan mengemas kini cap masa arkib (-aoa). Kemudian, kami laksanakan arahan menggunakan fungsi exec.Command dan semak sebarang ralat.
Sumber Tambahan
Nota:
Walaupun pendekatan ini bergantung pada alat luaran, ia menyediakan penyelesaian yang mudah untuk mengendalikan fail ZIP yang dilindungi kata laluan dalam Go.
Atas ialah kandungan terperinci Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!