Cara Mengezip Kandungan Direktori Tidak Termasuk Folder Root
Soalan:
Anda mempunyai direktori struktur seperti ini:
dir1 file1.html file2.go
Apabila anda zip ke dir1.zip dan ekstraknya, anda mendapat struktur yang sama:
dir1 file1.html file2.go
Walau bagaimanapun, anda mahu zip kandungan di dalam "dir1" tanpa folder akar "dir1" sebagai hasilnya selepas mengekstrak.
Jawapan:
Untuk mencapai ini, ubah suai kod dalam fungsi Zipit anda. Secara khusus, periksa kod berikut:
if baseDir != "" { header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source)) }
Kod ini menambah direktori asas (dalam kes ini, "dir1") pada nama fail di dalam arkib. Untuk mengecualikan folder akar daripada kandungan yang diekstrak, cuma alih keluar penambahan direktori asas:
header.Name = strings.TrimPrefix(path, source)
Kod ini memangkas awalan daripada laluan dan menetapkannya kepada nama pengepala tanpa memasukkan direktori asas.
Contoh:
Jika anda memanggil fungsi anda sebagai berikut:
Zipit("dir1/", "dir1.zip")
Selepas membuat pengubahsuaian kod, kandungan anda yang diekstrak ialah:
file1.html file2.go
tanpa folder akar "dir1".
Lain-lain Nota:
Atas ialah kandungan terperinci Bagaimana untuk Mengezip Kandungan Direktori Tidak Termasuk Folder Root?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!