problème: zipper les fichiers dans un dossier se traduit par une structure extraite qui inclut la racine dossier, tandis que le résultat souhaité consiste à extraire les fichiers sans le dossier racine.
Tentative:
Le code suivant est une tentative de zip de la structure du répertoire:
func Zipit(source, target string) error { zipfile, err := os.Create(target) ... header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source)) ... }
Dépannage:
Dans le code fourni, le problème réside dans la ligne où le base est ajouté à la tête en tête. Pour exclure le dossier racine de la structure extraite, supprimez le base de la solution de fichier. Name = filepath.join (Basedir, Strings.trimprefix (Path, Source))
avec: en-tête.name = strings.trimprefix (path, source)
Approches alternatives:
header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source))
Au lieu de modifier manuellement le nom d'en-tête, vous pouvez également utiliser l'approche alternative suivante pour exclure le dossier racine pendant Extraction:
header.Name = strings.TrimPrefix(path, source)
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3