So komprimieren Sie Verzeichnisinhalte mit Ausnahme des Stammordners
Frage:
Sie haben ein Verzeichnis Struktur wie folgt:
dir1 file1.html file2.go
Wenn Sie es nach dir1.zip komprimieren und extrahieren, erhalten Sie die gleiche Struktur:
dir1 file1.html file2.go
Allerdings möchten Sie den darin enthaltenen Inhalt komprimieren. dir1“ ohne den Stammordner „dir1“ als Ergebnis nach dem Extrahieren.
Antwort:
Um dies zu erreichen, ändern Sie den Code in Ihrer Zipit-Funktion. Untersuchen Sie insbesondere den folgenden Code:
if baseDir != "" { header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source)) }
Dieser Code fügt das Basisverzeichnis (in diesem Fall „dir1“) zum Dateinamen im Archiv hinzu. Um den Stammordner vom extrahierten Inhalt auszuschließen, entfernen Sie einfach den Zusatz des Basisverzeichnisses:
header.Name = strings.TrimPrefix(path, source)
Dieser Code schneidet das Präfix aus dem Pfad ab und weist es dem Headernamen zu, ohne das Basisverzeichnis einzuschließen.
Beispiel:
Wenn Sie Ihre Funktion wie folgt aufrufen:
Zipit("dir1/", "dir1.zip")
Nach der Codeänderung lautet Ihr extrahierter Inhalt:
file1.html file2.go
ohne den Stammordner „dir1“.
Weitere Hinweise:
Das obige ist der detaillierte Inhalt vonWie komprimiere ich Verzeichnisinhalte mit Ausnahme des Stammordners?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!