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 en excluant le dossier racine ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-18 22:17:02292parcourir

How to Zip Directory Contents Excluding the Root Folder?

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 :

  • Il convient de noter que cette modification affecte le nom du fichier dans l'archive, et non le contenu réel. des fichiers.
  • Vous pouvez expérimenter d'autres fonctions de chemin de fichier pour personnaliser davantage le nom de fichier comme vous le souhaitez.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn