Maison > développement back-end > Golang > 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
Libérer: 2024-11-18 22:17:02
original
350 Les gens l'ont consulté

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
Copier après la connexion
Copier après la connexion

Lorsque vous le compressez dans dir1.zip et que vous l'extrayez, vous obtenez la même structure :

dir1
  file1.html
  file2.go
Copier après la connexion
Copier après la connexion

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))
}
Copier après la connexion

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)
Copier après la connexion

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")
Copier après la connexion

Après avoir effectué la modification du code, votre contenu extrait sera :

file1.html
file2.go
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal