Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go?

Bagaimana untuk Nyahzip Fail ZIP yang Dilindungi Kata Laluan dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 16:32:01508semak imbas

How to Unzip Password-Protected ZIP Files in Go?

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

  • [Tapak Web Rasmi 7-Zip](https ://www.7-zip.org/)
  • [Panduan Pengguna 7-Zip](https://wiki.7-zip.org/7-Zip_User_Guide)
  • [Pergi os/exec Package Documentation](https://golang.org/pkg/os/exec/)

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn