Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Das Arbeiten mit Dateien und Verzeichnissen ist eine wesentliche Aufgabe für Anwendungen, die Daten speichern und abrufen müssen. Go stellt das filepath-Paket für plattformunabhängige Dateipfadoperationen bereit. Das Paket enthält Funktionen zum Bearbeiten von Dateipfaden und ist mit Windows, Linux und macOS kompatibel.

Die Funktionen, die filepath enthält, können Dateipfade verbinden, teilen und bereinigen, um sicherzustellen, dass sie gültig sind. Das Paket hat auch Funktionen zum Durchsuchen von Verzeichnissen und Suchen nach Dateien.

Gehende Verzeichnisbäume

Der Gehen Funktion der Dateipfad -Paket bietet Funktionen zum Durchlaufen eines Verzeichnisbaums und zum Durchlaufen von Dateien und Verzeichnissen in einer vorbestellten Weise. Es wird rekursiv alle Verzeichnisse unterhalb des angegebenen Stammverzeichnisses besuchen. Die Walk-Funktion übernimmt ein Stammverzeichnis und eine Funktion, die den Pfad, die Dateiinformationsinstanz und eine Fehlerinstanz aufnimmt.

instagram viewer

Paket hauptsächlich

importieren (
"fmt"
"Pfad/Dateipfad"
"os"
)

Funkhauptsächlich() {
// Definiert das Root-Verzeichnis, um den Walk zu starten
Wurzel := "."

// Verwendet die Walk-Funktion, um den Verzeichnisbaum zu durchlaufen
Fehler := Dateipfad. Gehen (Wurzel, Funk(Weg Schnur, info os. FileInfo, err Fehler)Fehler {
Wenn äh != Null {
zurückkehren irren
}

// Gibt den Namen jeder Datei oder jedes Verzeichnisses aus
fmt. Println (Pfad)
zurückkehrenNull
})

// Prüft auf Fehler
Wenn äh != Null {
fmt. Druckenf("Fehler beim Gehen des Verzeichnisbaums: %v\n", irren)
}
}

Dieses Programm definiert das Stammverzeichnis als aktuelles Arbeitsverzeichnis. Der hauptsächlich Funktion durchläuft die Verzeichnisse im Stammverzeichnis und gibt die Namen der Dateien aus.

Abgleichen von Dateien mit Musterabgleich

Du kannst den... benutzen Passen Funktion, um Dateinamen mit einem Muster abzugleichen. Die Mustersyntax basiert auf dem Common Dateiplatzhaltersyntax, die Metazeichen verwendet, bekannt als Glob-Muster in Unix-Umgebungen.

Paket hauptsächlich

importieren (
"fmt"
"Pfad/Dateipfad"
)

Funkhauptsächlich() {
// Definiert das zu vergleichende Muster
Muster := "*.txt"

// Verwendet die Match-Funktion, um das Muster auf Dateien abzugleichen
Übereinstimmung, Fehler := Dateipfad. Übereinstimmung (Muster, "Datei.txt")

Wenn äh != Null {
fmt. Druckenf("Fehler beim Abgleich des Musters: %v\n", irren)
zurückkehren
}

// Gibt das Ergebnis der Übereinstimmung aus
Wenn passen {
fmt. Println("Datei stimmt mit Muster überein.")
} anders {
fmt. Println("Datei stimmt nicht mit Muster überein.")
}
}

Der hauptsächlich Funktion vergleicht einen Dateinamen mit der *.txt Muster und druckt eine Zeichenfolge in Abhängigkeit vom Ergebnis von die bedingte Aussage.

Reinigen von Pfaden mit der Clean-Funktion

Der Sauber Die Funktion übernimmt einen Dateipfad und gibt eine bereinigte Version eines Pfads zurück, indem unnötige Trennzeichen und Verzeichnisänderungen entfernt werden, z . (aktuelles Verzeichnis) und .. (übergeordnetes Verzeichnis) Segmente.

Das Bereinigen von Dateipfaden ist nützlich, da es hilft, Fehler zu vermeiden, wenn ein Pfad redundante Trennzeichen oder ungültige Segmente enthält oder Pfade unabhängig vom aktuellen Arbeitsverzeichnis erstellt.

Paket hauptsächlich

importieren (
"fmt"
"Pfad/Dateipfad"
)

Funkhauptsächlich() {
// Erstellt einen Pfad mit redundanten Trennzeichen und ungültigen Segmenten
Pfad := "/foo/bar//baz/.././qux/"

// Reinigt den Pfad
cleanPath := Dateipfad. Sauber (Pfad)

// Druckt die ursprünglichen und bereinigten Dateipfade
fmt. Println("Ursprünglicher Pfad:", Weg)
fmt. Println("Gesäuberter Pfad:", cleanPath)
}

Der Weg Variable ist der anfängliche Dateipfad und die Sauber Funktion reinigt die Weg Variable und gibt den bereinigten Dateipfad zurück. Der hauptsächlich -Funktion gibt die anfänglichen und sauberen Dateipfade aus.

Verbinden und Teilen von Dateipfaden in Go

Der Verbinden Und Teilt Funktionen bieten Funktionen zum Verbinden und Teilen von Dateipfaden.

Die Join-Funktion nimmt eine beliebige Anzahl von Pfadelementen auf. Es gibt eine einzelne Dateipfadzeichenfolge zurück, die sich aus der Verkettung dieser Elemente mit dem entsprechenden Pfadtrennzeichen für das Betriebssystem ergibt. Der Verbinden Die Funktion ist nützlich, um Dateipfade unabhängig vom zugrunde liegenden Dateisystem zu erstellen.

Paket hauptsächlich

importieren (
"fmt"
"Pfad/Dateipfad"
)

Funkhauptsächlich() {
// Definiert vier Dateipfade für die Join-Operation
Pfad1 := "Ordner1"
Pfad2 := "Ordner2"
Pfad3 := "Unterordner1"
Pfad4 := "beispiel.txt"

// Verbindet die vier Dateipfade zu einem einzigen Pfad
joinPath := Dateipfad. Verbinden (Pfad1, Pfad2, Pfad3, Pfad4)

// Drucken Sie den einheitlichen Dateipfad
fmt. Println("Verbundener Pfad:", beigetretenerPfad)
}

Der Pfad1, Pfad2, Und Pfad3 Variablen sind Ordnernamen und die weg4 Variable ist ein Dateiname. Der Verbinden Die Funktion übernimmt die Namen der Pfadvariablen und gibt den verketteten Dateipfad zurück. Der hauptsächlich -Funktion gibt den verketteten Dateipfad mit der Konsole aus fmt Paket.

Der Teilt Die Funktion übernimmt eine Pfadzeichenfolge und gibt die Verzeichnis- und Dateinamenkomponenten des Pfads zurück. Der Teilt Die Funktion ist nützlich, um Dateinamen zu extrahieren oder das übergeordnete Verzeichnis einer Datei zu ermitteln.

Paket hauptsächlich

importieren (
"fmt"
"Pfad/Dateipfad"
)

Funkhauptsächlich() {
// Legt den Dateipfad für die Teilungsoperation fest
Dateipfad := "/home/benutzer/dokumente/beispiel.txt"

// Verwenden Sie die Split-Funktion, um den Dateipfad aufzuteilen
// in seine Verzeichnis- und Dateikomponenten
dir, datei := dateipfad. Aufteilen (Dateipfad)

// Verzeichnis- und Dateikomponenten drucken
fmt. Println("Verzeichnis:", dir)
fmt. Println("Datei:", Datei)
}

Der Dateipfad Variable ist der ursprüngliche Dateipfad und die Teilt Funktion übernimmt die Dateipfad -Variable und gibt Verzeichnis- und Dateinamen als Strings zurück. Der hauptsächlich Funktion gibt das Verzeichnis und die Dateinamen auf der Konsole aus.

Sie können Textdateien mit Go manipulieren

Neben der Dateisystemfunktionalität bietet Go Pakete, die Ihnen bei der Arbeit mit mehreren Dateitypen, einschließlich Textdateien, helfen.

Du kannst den... benutzen bufio Paket zu gepufferten Eingabe- und Ausgabeoperationen auf Textdateien und dem os Paket zum Erstellen von Dateien, neben anderen Operationen.