Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Unzip Fail Zip Dilindungi Kata Laluan di Golang?
Menyahzip Fail Zip Dilindungi Kata Laluan di Golang
Keluaran Golang 1.2 baru-baru ini memperkenalkan pakej arkib/zip. Walau bagaimanapun, ia nampaknya menawarkan fungsi zip asas dan tidak mempunyai sokongan untuk menyahzip fail zip yang dilindungi kata laluan. Untuk menangani perkara ini, pendekatan alternatif ialah menggunakan 7zip.
Penyelesaian: Menggunakan 7zip melalui Pakej os/exec Go
Memandangkan 7zip menyediakan fungsi zip yang mantap, termasuk kata laluan -penyahzip yang dilindungi, kami boleh memanfaatkan pakej os/exec Go untuk melaksanakan perintah 7zip dari dalam kod Go kami.
Contoh Kod
Kod Go berikut menunjukkan cara mengekstrak fail zip yang dilindungi kata laluan menggunakan 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>
Penggunaan
Penyelesaian ini menggunakan kefungsian zip terbukti 7zip dengan berkesan, memberikan cara yang mudah untuk pembangun Golang mengendalikan fail zip yang dilindungi kata laluan.
Atas ialah kandungan terperinci Bagaimana untuk Unzip Fail Zip Dilindungi Kata Laluan di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!