Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Arbeid med filer og kataloger er en viktig oppgave for programmer som trenger å lagre og hente data. Go gir filbanepakken for plattformuavhengige filbaneoperasjoner. Pakken inneholder funksjoner for å manipulere filstier, og den er kompatibel med Windows, Linux og macOS.

Funksjonene som filbane inkluderer kan slå sammen, dele og rense filbaner for å sikre at de er gyldige. Pakken har også funksjoner for å gå kataloger og søke etter filer.

Gående katalogtrær

De funksjonen til filbane pakken gir funksjonalitet for å gå et katalogtre og gå gjennom filer og kataloger på en forhåndsbestillingsmåte. Den vil rekursivt besøke alle kataloger under den gitte roten. Walk-funksjonen tar inn en rotkatalog og en funksjon som tar inn banen, filinformasjonsforekomsten og en feilforekomst.

pakke hoved-

import (
"fmt"
"bane/filbane"
"os"
)

funchoved-() {
// Definerer rotkatalogen for å starte turen
rot := "."

instagram viewer

// Bruker Walk-funksjonen til å gå i katalogtreet
feil := filbane. Gå (root, func(sti streng, info os. FileInfo, feil feil)feil {
hvis feil!= null {
komme tilbake feil
}

// Skriver ut navnet på hver fil eller katalog
fmt. Println (bane)
komme tilbakenull
})

// Sjekker for feil
hvis feil!= null {
fmt. Printf("Feil ved å gå i katalogtreet: %v\n", feil)
}
}

Dette programmet definerer rotkatalogen som gjeldende arbeidskatalog. De hoved- funksjonen går gjennom katalogene i rotkatalogen og skriver ut navnene på filene.

Matchende filer med mønstermatching

Du kan bruke Kamp funksjon for å matche filnavn mot et mønster. Mønstersyntaksen er basert på det vanlige fil-jokertegnsyntaks, som bruker metategn, kjent som glob-mønstre i Unix-miljøer.

pakke hoved-

import (
"fmt"
"bane/filbane"
)

funchoved-() {
// Definerer mønsteret som skal matche
mønster := "*.tekst"

// Bruker Match-funksjonen for å matche mønsteret på filer
match, feil := filbane. Match (mønster, "file.txt")

hvis feil!= null {
fmt. Printf("Feil ved samsvarende mønster: %v\n", feil)
komme tilbake
}

// Skriver ut resultatet av kampen
hvis kamp {
fmt. Println("Fil samsvarer med mønster.")
} ellers {
fmt. Println("Filen samsvarer ikke med mønsteret.")
}
}

De hoved- funksjonen samsvarer med et filnavn mot *.tekst mønster og skriver ut en streng avhengig av resultatet av den betingede erklæringen.

Rengjøringsbaner med rensefunksjonen

De Ren funksjonen tar inn en filbane og returnerer en renset versjon av en bane ved å fjerne unødvendige skilletegn og katalogendringer, som f.eks. . (nåværende katalog) og .. (overordnet katalog) segmenter.

Rensing av filbaner er nyttig siden det bidrar til å unngå feil hvis en bane inneholder redundante skilletegn eller ugyldige segmenter, eller konstruerer stier uavhengig av gjeldende arbeidskatalog.

pakke hoved-

import (
"fmt"
"bane/filbane"
)

funchoved-() {
// Oppretter en bane med redundante skilletegn og ugyldige segmenter
sti := "/foo/bar//baz/.././qux/"

// Renser banen
cleanPath := filbane. Rengjør (bane)

// Skriver ut den originale og rensede filbanen
fmt. Println("Original bane:", bane)
fmt. Println("Rengjort bane:", cleanPath)
}

De sti variabel er den første filbanen, og Ren funksjonen renser sti variabel og returnerer den rensede filbanen. De hoved- funksjonen skriver ut de innledende og rene filbanene.

Sammenføyning og splitting av filbaner i Go

De Bli med og Dele funksjoner gir funksjonalitet for å slå sammen og dele filbaner.

Join-funksjonen tar inn et hvilket som helst antall baneelementer. Den returnerer en enkelt filbanestreng som er et resultat av å sette sammen disse elementene ved å bruke riktig baneseparator for operativsystemet. De Bli med funksjonen er nyttig for å konstruere filstier uavhengig av det underliggende filsystemet.

pakke hoved-

import (
"fmt"
"bane/filbane"
)

funchoved-() {
// Definerer fire filbaner for sammenføyningsoperasjonen
sti1 := "mappe1"
sti2 := "mappe2"
sti3 := "undermappe1"
sti4 := «example.txt»

// Slår sammen de fire filbanene til en enkelt bane
joinedPath := filbane. Bli med (sti1, bane2, bane3, sti4)

// Skriv ut den enhetlige filbanen
fmt. Println("Bli med sti:", joinedPath)
}

De sti1, sti2, og sti3 variabler er mappenavn, og sti4 variabel er et filnavn. De Bli med funksjonen tar inn banevariabelnavnene og returnerer den sammenknyttede filbanen. De hoved- funksjonen skriver ut den sammenknyttede filbanen til konsollen med fmt pakke.

De Dele funksjonen tar inn en banestreng og returnerer banens katalog og filnavnkomponenter. De Dele funksjonen er nyttig for å trekke ut filnavn eller bestemme overordnet katalog for en fil.

pakke hoved-

import (
"fmt"
"bane/filbane"
)

funchoved-() {
// Angir filbanen for splittoperasjonen
filbane := "/home/user/documents/example.txt"

// Bruk Split-funksjonen for å dele filbanen
// inn i katalogen og filkomponentene
dir, fil := filbane. Del (filbane)

// Skriv ut katalogen og filkomponentene
fmt. Println("Katalog:", dir)
fmt. Println("Fil:", fil)
}

De filbane variabel er den opprinnelige filbanen, og Dele funksjonen tar inn filbane variabel og returnerer katalogen og filnavnene som strenger. De hoved- funksjonen skriver ut katalogen og filnavnene til konsollen.

Du kan manipulere tekstfiler med Go

Ved siden av filsystemfunksjonalitet tilbyr Go pakker som hjelper deg med å jobbe med flere filtyper, inkludert tekstfiler.

Du kan bruke bufio pakke til bufret inn- og utdataoperasjoner på tekstfiler og os pakke for å lage filer, blant andre operasjoner.