Heim  >  Artikel  >  Backend-Entwicklung  >  Wie komprimiere ich Verzeichnisinhalte mit Ausnahme des Stammordners?

Wie komprimiere ich Verzeichnisinhalte mit Ausnahme des Stammordners?

Linda Hamilton
Linda HamiltonOriginal
2024-11-18 22:17:02292Durchsuche

How to Zip Directory Contents Excluding the Root Folder?

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:

  • Es ist zu beachten, dass sich diese Änderung auf den Dateinamen auswirkt innerhalb des Archivs, nicht der eigentliche Inhalt der Dateien.
  • Sie können mit anderen Dateipfadfunktionen experimentieren, um den Dateinamen nach Wunsch weiter anzupassen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn