Maison > Article > développement back-end > Comment compresser le contenu d'un répertoire en excluant le dossier racine ?
Comment compresser le contenu d'un répertoire à l'exclusion du dossier racine
Question :
Vous avez un répertoire structure comme ceci :
dir1 file1.html file2.go
Lorsque vous le compressez dans dir1.zip et que vous l'extrayez, vous obtenez la même structure :
dir1 file1.html file2.go
Cependant, vous souhaitez compresser le contenu à l'intérieur de "dir1" sans le dossier racine "dir1" après l'extraction.
Réponse :
Pour y parvenir, modifiez le code dans votre fonction Zipit. Plus précisément, examinez le code suivant :
if baseDir != "" { header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source)) }
Ce code ajoute le répertoire de base (dans ce cas, "dir1") au nom de fichier dans l'archive. Pour exclure le dossier racine du contenu extrait, supprimez simplement l'ajout du répertoire de base :
header.Name = strings.TrimPrefix(path, source)
Ce code supprime le préfixe du chemin et l'attribue au nom d'en-tête sans inclure le répertoire de base.
Exemple :
Si vous appelez votre fonction comme suit :
Zipit("dir1/", "dir1.zip")
Après avoir effectué la modification du code, votre contenu extrait sera :
file1.html file2.go
sans le dossier racine "dir1".
Autre Notes :
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!