At arbejde med filer og mapper er en vigtig opgave for programmer, der skal gemme og hente data. Go leverer filstipakken til platformsuafhængige filstioperationer. Pakken indeholder funktioner til at manipulere filstier, og den er kompatibel med Windows, Linux og macOS.
De funktioner, som filstien inkluderer, kan forbinde, opdele og rense filstier for at sikre, at de er gyldige. Pakken har også funktioner til at gå i mapper og søge efter filer.
Vandrende vejvisertræer
Det Gå funktion af filsti pakken giver funktionalitet til at gå i et mappetræ og krydse filer og mapper på en forudbestillingsmåde. Det vil rekursivt besøge alle mapper under den givne rod. Walk-funktionen tager et rodbibliotek og en funktion, der tager stien, filinformationsforekomsten og en fejlforekomst ind.
pakke vigtigste
importere (
"fmt"
"sti/filsti"
"os"
)funcvigtigste() {
// Definerer rodmappen til at starte turen
rod := "."// Bruger Walk-funktionen til at gå i bibliotekstræet
fejl := filsti. Gå (rod, func(sti snor, info os. FileInfo, fejl fejl)fejl {
hvis fejl!= nul {
Vend tilbage fejl
}// Udskriver navnet på hver fil eller mappe
fmt. Println (sti)
Vend tilbagenul
})
// Kontrollerer for fejl
hvis fejl!= nul {
fmt. Printf("Fejl ved at gå i mappetræet: %v\n", fejl)
}
}
Dette program definerer rodmappen som den aktuelle arbejdsmappe. Det vigtigste funktion går gennem mapperne i rodmappen og udskriver navnene på filerne.
Matchende filer med mønstermatchning
Du kan bruge Match funktion til at matche filnavne mod et mønster. Mønstersyntaksen er baseret på det fælles fil jokertegn syntaks, som bruger metategn, kendt som glob-mønstre i Unix-miljøer.
pakke vigtigste
importere (
"fmt"
"sti/filsti"
)funcvigtigste() {
// Definerer det mønster, der skal matche
mønster := "*.txt"// Bruger Match-funktionen til at matche mønstret på filer
match, fejl := filsti. Match (mønster, "fil.txt")hvis fejl!= nul {
fmt. Printf("Fejl, der matcher mønster: %v\n", fejl)
Vend tilbage
}
// Udskriver resultatet af kampen
hvis match {
fmt. Println("Fil matcher mønster.")
} andet {
fmt. Println("Filen matcher ikke mønsteret.")
}
}
Det vigtigste funktion matcher et filnavn mod *.txt mønster og udskriver en streng afhængig af resultatet af den betingede erklæring.
Rengøringsstier med rensningsfunktionen
Det Ren funktionen tager en filsti ind og returnerer en renset version af en sti ved at fjerne unødvendige separatorer og mappeændringer, som f.eks. . (nuværende bibliotek) og .. (overordnet bibliotek) segmenter.
Det er nyttigt at rense filstier, da det hjælper med at undgå fejl, hvis en sti indeholder redundante separatorer eller ugyldige segmenter, eller konstruerer stier uafhængigt af den aktuelle arbejdsmappe.
pakke vigtigste
importere (
"fmt"
"sti/filsti"
)funcvigtigste() {
// Opretter en sti med redundante separatorer og ugyldige segmenter
sti := "/foo/bar//baz/.././qux/"// Renser stien
cleanPath := filsti. Rens (sti)
// Udskriver de originale og rensede filstier
fmt. Println("Original sti:", sti)
fmt. Println("Renset sti:", cleanPath)
}
Det sti variabel er den indledende filsti, og Ren funktion renser sti variabel og returnerer den rensede filsti. Det vigtigste funktion udskriver de indledende og rene filstier.
Sammenføjning og opdeling af filstier i Go
Det Tilslutte og Dele funktioner giver funktionalitet til at forbinde og opdele filstier.
Join-funktionen optager et vilkårligt antal stielementer. Det returnerer en enkelt filstistreng, der er resultatet af sammenkædning af disse elementer ved hjælp af den passende sti-separator til operativsystemet. Det Tilslutte funktion er nyttig til at konstruere filstier uafhængigt af det underliggende filsystem.
pakke vigtigste
importere (
"fmt"
"sti/filsti"
)funcvigtigste() {
// Definerer fire filstier til join-operationen
sti1 := "mappe1"
sti2 := "mappe 2"
sti3 := "undermappe1"
sti4 := "eksempel.txt"// Forener de fire filstier til en enkelt sti
joinedPath := filsti. Deltag (sti1, sti2, sti3, sti4)
// Udskriv den forenede filsti
fmt. Println("Tilsluttet sti:", joinedPath)
}
Det sti1, sti2, og sti 3 variabler er mappenavne og sti 4 variabel er et filnavn. Det Tilslutte funktionen tager stivariabelnavnene ind og returnerer den sammenkædede filsti. Det vigtigste funktion udskriver den sammenkædede filsti til konsollen med fmt pakke.
Det Dele funktionen tager en stistreng ind og returnerer stiens bibliotek og filnavnskomponenter. Det Dele funktionen er nyttig til at udtrække filnavne eller bestemme overordnet bibliotek for en fil.
pakke vigtigste
importere (
"fmt"
"sti/filsti"
)
funcvigtigste() {
// Indstiller filstien for opdelingen
filsti := "/hjem/bruger/dokumenter/eksempel.txt"
// Brug Split-funktionen til at opdele filstien
// ind i dens mappe og filkomponenter
dir, fil := filsti. Opdel (filsti)
// Udskriv mappen og filkomponenterne
fmt. Println("Vejviser:", dir)
fmt. Println("Fil:", fil)
}
Det filsti variabel er den originale filsti, og Dele funktion tager i filsti variabel og returnerer mappen og filnavnene som strenge. Det vigtigste funktionen udskriver mappe- og filnavne til konsollen.
Du kan manipulere tekstfiler med Go
Udover filsystemfunktionalitet tilbyder Go pakker, der hjælper dig med at arbejde med flere filtyper, inklusive tekstfiler.
Du kan bruge bufio pakke til bufferede input- og outputoperationer på tekstfiler og os pakke til oprettelse af filer, blandt andre operationer.