Wie komprimiere ich Ordnerinhalte in Go, ohne den Stammordner einzubeziehen?

Mary-Kate Olsen
Freigeben: 2024-11-17 21:46:01
Original
691 Leute haben es durchsucht

How to Zip Folder Content in Go Without Including the Root Folder?

Inhalt aus einem Ordner ohne Stammordner komprimieren

In Go kann das Komprimieren des Inhalts innerhalb eines Verzeichnisses unter Ausschluss des Stammordners mit zip erreicht werden .Autor.

Problem Beschreibung

Der Originalcode zielt darauf ab, den Inhalt eines Verzeichnisses („dir1“) in „dir1.zip“ zu komprimieren. Beim Extrahieren behalten die komprimierten Dateien jedoch die Ordnerstruktur „dir1“ als Stammordner bei. Das Ziel besteht darin, den Stammordner beim Extrahieren zu entfernen.

Lösung

Um dies zu erreichen, müssen wir das Feld header.Name im zip.Writer ändern. Dieses Feld bestimmt den Namen der Datei im Archiv. Im Originalcode ist das Feld wie folgt festgelegt:

if baseDir != "" {
    header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, source))
}
Nach dem Login kopieren

Dieser Code stellt sicher, dass der Dateiname das Basisverzeichnis („dir1“) und den Pfad der Datei relativ zum Quellverzeichnis („path/dir1“) enthält. ). Um jedoch den Stammordner nach der Extraktion zu entfernen, müssen wir das Basisverzeichnis weglassen:

header.Name = strings.TrimPrefix(path, source)
Nach dem Login kopieren

Mit dieser Änderung befinden sich die gezippten Dateien direkt unter dem Stammverzeichnis des Archivs und haben nicht das „ Ordner „dir1“ als Stammverzeichnis beim Extrahieren.

Ergebnis

Durch Weglassen des Basisverzeichnisses aus dem header.Name-Feld wird der Inhalt des Verzeichnisses „dir1“ ohne den Stammordner in „dir1.zip“ gezippt. Dadurch kann der Benutzer die Dateien direkt extrahieren, ohne durch den Ordner „dir1“ navigieren zu müssen.

Das obige ist der detaillierte Inhalt vonWie komprimiere ich Ordnerinhalte in Go, ohne den Stammordner einzubeziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage