Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Att arbeta med filer och kataloger är en viktig uppgift för applikationer som behöver lagra och hämta data. Go tillhandahåller filsökvägspaketet för plattformsoberoende filsökvägsoperationer. Paketet innehåller funktioner för att manipulera filsökvägar och det är kompatibelt med Windows, Linux och macOS.

Funktionerna som filsökväg inkluderar kan sammanfoga, dela upp och rensa filsökvägar för att säkerställa att de är giltiga. Paketet har även funktioner för att gå kataloger och söka efter filer.

Gående katalogträd

De funktion av sökväg Paketet tillhandahåller funktionalitet för att gå i ett katalogträd och gå igenom filer och kataloger på ett förbeställningssätt. Den kommer rekursivt att besöka alla kataloger under den givna roten. Walk-funktionen tar in en rotkatalog och en funktion som tar in sökvägen, filinformationsinstansen och en felinstans.

instagram viewer
paket huvud

importera (
"fmt"
"sökväg/filsökväg"
"os"
)

funchuvud() {
// Definierar rotkatalogen för att starta promenaden
rot := "."

// Använder Walk-funktionen för att gå i katalogträdet
err := filsökväg. Gå (rot, func(väg sträng, info os. FileInfo, err error)fel {
om fel!= noll {
lämna tillbaka fela
}

// Skriver ut namnet på varje fil eller katalog
fmt. Println (sökväg)
lämna tillbakanoll
})

// Kontrollerar efter fel
om fel!= noll {
fmt. Printf("Fel när katalogträdet gick: %v\n", fel)
}
}

Detta program definierar rotkatalogen som den aktuella arbetskatalogen. De huvud funktionen går igenom katalogerna i rotkatalogen och skriver ut namnen på filerna.

Matcha filer med mönstermatchning

Du kan använda Match funktion för att matcha filnamn mot ett mönster. Mönstersyntaxen är baserad på det gemensamma fil jokerteckensyntax, som använder metatecken, känd som globmönster i Unix-miljöer.

paket huvud

importera (
"fmt"
"sökväg/filsökväg"
)

funchuvud() {
// Definierar mönstret som ska matcha
mönster := "*.Text"

// Använder Match-funktionen för att matcha mönstret på filer
match, err := filsökväg. Matcha (mönster, "file.txt")

om fel!= noll {
fmt. Printf("Fel matchande mönster: %v\n", fel)
lämna tillbaka
}

// Skriver ut resultatet av matchen
om matcha {
fmt. Println("Fil matchar mönster.")
} annan {
fmt. Println("Filen matchar inte mönstret.")
}
}

De huvud funktionen matchar ett filnamn mot *.Text mönster och skriver ut en sträng beroende på resultatet av det villkorliga uttalandet.

Rengöringsvägar med rengöringsfunktionen

De Rena funktionen tar in en filsökväg och returnerar en rensad version av en sökväg genom att ta bort onödiga avgränsare och katalogändringar, som t.ex. . (nuvarande katalog) och .. (överordnad katalog) segment.

Att rensa filsökvägar är användbart eftersom det hjälper till att undvika fel om en sökväg innehåller redundanta avgränsare eller ogiltiga segment, eller konstruerar sökvägar oberoende av den aktuella arbetskatalogen.

paket huvud

importera (
"fmt"
"sökväg/filsökväg"
)

funchuvud() {
// Skapar en sökväg med redundanta avgränsare och ogiltiga segment
väg := "/foo/bar//baz/.././qux/"

// Rensar banan
cleanPath := filsökväg. Rengör (sökväg)

// Skriver ut de ursprungliga och rensade filsökvägarna
fmt. Println("Original sökväg:", väg)
fmt. Println("Renad väg:", cleanPath)
}

De väg variabeln är den ursprungliga filsökvägen och Rena funktionen rengör väg variabel och returnerar den rensade filsökvägen. De huvud funktionen skriver ut de initiala och rena filsökvägarna.

Gå med och dela filvägar i Go

De Ansluta sig och Dela funktioner ger funktionalitet för att sammanfoga och dela filsökvägar.

Join-funktionen tar in valfritt antal banelement. Den returnerar en enda filsökvägssträng som är resultatet av att sammanfoga dessa element med hjälp av lämplig sökvägsseparator för operativsystemet. De Ansluta sig funktionen är användbar för att konstruera filsökvägar oberoende av det underliggande filsystemet.

paket huvud

importera (
"fmt"
"sökväg/filsökväg"
)

funchuvud() {
// Definierar fyra filsökvägar för joinoperationen
sökväg1 := "mapp1"
sökväg2 := "mapp 2"
sökväg 3 := "undermapp1"
sökväg 4 := "exempel.txt"

// Sammanfogar de fyra filvägarna till en enda sökväg
joinedPath := filsökväg. Gå med (sökväg1, sökväg2, sökväg3, sökväg4)

// Skriv ut den enhetliga filsökvägen
fmt. Println("Joined Path:", joinedPath)
}

De väg1, väg 2, och väg 3 variabler är mappnamn och väg 4 variabel är ett filnamn. De Ansluta sig funktionen tar in sökvägsvariabelns namn och returnerar den sammanlänkade filsökvägen. De huvud funktionen skriver ut den sammanlänkade filsökvägen till konsolen med fmt paket.

De Dela funktionen tar in en sökvägssträng och returnerar sökvägens katalog- och filnamnskomponenter. De Dela funktionen är användbar för att extrahera filnamn eller bestämma överordnad katalog för en fil.

paket huvud

importera (
"fmt"
"sökväg/filsökväg"
)

funchuvud() {
// Ställer in sökvägen för fildelningen
filsökväg := "/home/user/documents/example.txt"

// Använd Split-funktionen för att dela filsökvägen
// till dess katalog och filkomponenter
dir, fil := filsökväg. Dela (filsökväg)

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

De sökväg variabeln är den ursprungliga filsökvägen och Dela funktionen tar in sökväg variabel och returnerar katalogen och filnamnen som strängar. De huvud funktionen skriver ut katalogen och filnamnen till konsolen.

Du kan manipulera textfiler med Go

Vid sidan av filsystemfunktioner tillhandahåller Go paket som hjälper dig att arbeta med flera filtyper, inklusive textfiler.

Du kan använda bufio paket till buffrade in- och utdataoperationer på textfiler och os paket för att skapa filer, bland annat.