Tiedostojen ja hakemistojen käsittely on olennainen tehtävä sovelluksille, joiden on tallennettava ja haettava tietoja. Go tarjoaa tiedostopolkupaketin alustasta riippumattomia tiedostopolkutoimintoja varten. Paketti sisältää toimintoja tiedostopolkujen muokkaamiseen ja se on yhteensopiva Windowsin, Linuxin ja macOS: n kanssa.
Tiedostopolun sisältämät toiminnot voivat yhdistää, jakaa ja puhdistaa tiedostopolut varmistaakseen, että ne ovat kelvollisia. Paketissa on myös toimintoja hakemistoissa liikkumiseen ja tiedostojen etsimiseen.
Kävelevät hakemistopuut
The Kävellä toiminto tiedostopolku paketti tarjoaa toiminnot hakemistopuussa liikkumiseen ja tiedostojen ja hakemistojen selaamiseen ennakkotilaustavalla. Se vierailee rekursiivisesti kaikissa tietyn juuren alapuolella olevissa hakemistoissa. Kävelytoiminto ottaa käyttöön juurihakemiston ja toiminnon, joka ottaa polun, tiedostotieto-ilmentymän ja virheesiintymän.
paketti pää
tuonti (
"fmt"
"polku/tiedostopolku"
"os"
)funcpää() {
// Määrittää juurihakemiston kävelyn aloittamiseksi
juuri := "."// Käyttää Walk-toimintoa kävelemään hakemistopuussa
err := tiedostopolku. Kävele (juuri, func(polku merkkijono, info os. FileInfo, virhevirhe)virhe {
jos virhe! = nolla {
palata err
}// Tulostaa kunkin tiedoston tai hakemiston nimen
fmt. Println (polku)
palatanolla
})
// Tarkistaa virheiden varalta
jos virhe! = nolla {
fmt. Printf("Virhe kävellessä hakemistopuussa: %v\n", virhe)
}
}
Tämä ohjelma määrittelee juurihakemiston nykyiseksi työhakemistoksi. The pää toiminto kulkee juurihakemiston hakemistojen läpi ja tulostaa tiedostojen nimet.
Tiedostojen yhteensovittaminen kuvioiden vastaavuudella
Voit käyttää Ottelu toiminto sovittaa tiedostonimiä kuvioon. Kuvion syntaksi perustuu yhteiseen tiedoston yleismerkkisyntaksi, joka käyttää metamerkkejä, joka tunnetaan Unix-ympäristöissä glob-kuvioina.
paketti pää
tuonti (
"fmt"
"polku/tiedostopolku"
)funcpää() {
// Määrittää vastaavan kuvion
malli := "*.txt"// Käyttää Match-toimintoa sovittaakseen tiedostojen kuvion
match, err := tiedostopolku. Match (kuvio, "tiedosto.txt")jos virhe! = nolla {
fmt. Printf("Virhe sovittaessa mallia: %v\n", virhe)
palata
}
// Tulostaa ottelun tuloksen
jos ottelu {
fmt. Println("Tiedosto vastaa kuviota.")
} muu {
fmt. Println("Tiedosto ei vastaa kuviota.")
}
}
The pää funktio vastaa tiedoston nimeä *.txt kuvio ja tulostaa merkkijonon tuloksen mukaan ehdollinen lause.
Polkujen puhdistus Clean-toiminnolla
The Puhdas funktio ottaa tiedostopolun ja palauttaa polun puhdistetun version poistamalla tarpeettomat erottimet ja hakemistomuutokset, kuten . (nykyinen hakemisto) ja .. (emohakemisto) -segmentit.
Tiedostopolkujen puhdistaminen on hyödyllistä, koska se auttaa välttämään virheet, jos polku sisältää ylimääräisiä erottimia tai virheellisiä segmenttejä tai muodostaa polkuja riippumattomia nykyisestä työhakemistosta.
paketti pää
tuonti (
"fmt"
"polku/tiedostopolku"
)funcpää() {
// Luo polun, jossa on redundantteja erottimia ja virheellisiä segmenttejä
polku := "/foo/bar//baz/.././qux/"// Puhdistaa polun
cleanPath := tiedostopolku. Puhdista (polku)
// Tulostaa alkuperäiset ja puhdistetut tiedostopolut
fmt. Println("Alkuperäinen polku:", polku)
fmt. Println("Puhdastettu polku:", cleanPath)
}
The polku muuttuja on alkuperäinen tiedostopolku ja Puhdas toiminto puhdistaa polku muuttuja ja palauttaa puhdistetun tiedostopolun. The pää toiminto tulostaa alkuperäisen ja puhtaan tiedostopolun.
Tiedostopolkujen yhdistäminen ja jakaminen Gossa
The Liittyä seuraan ja Jakaa toiminnot tarjoavat toimintoja tiedostopolkujen yhdistämiseen ja jakamiseen.
Join-funktio ottaa vastaan minkä tahansa määrän polkuelementtejä. Se palauttaa yhden tiedostopolkumerkkijonon, joka on tuloksena näiden elementtien ketjuttamisesta käyttöjärjestelmälle sopivalla polun erottimella. The Liittyä seuraan Toiminto on hyödyllinen tiedostopolkujen rakentamisessa taustalla olevasta tiedostojärjestelmästä riippumatta.
paketti pää
tuonti (
"fmt"
"polku/tiedostopolku"
)funcpää() {
// Määrittää neljä tiedostopolkua liitosoperaatiolle
polku1 := "kansio1"
polku2 := "kansio2"
polku3 := "alikansio1"
polku4 := "esimerkki.txt"// Yhdistää neljä tiedostopolkua yhdeksi poluksi
joinedPath := tiedostopolku. Liity (polku1, polku2, polku3, polku4)
// Tulosta yhdistetty tiedostopolku
fmt. Println("Liittynyt polku:", joinedPath)
}
The polku1, polku2, ja polku3 muuttujat ovat kansioiden nimet ja polku4 muuttuja on tiedoston nimi. The Liittyä seuraan funktio ottaa polkumuuttujien nimet ja palauttaa ketjutetun tiedostopolun. The pää funktio tulostaa ketjutetun tiedoston polun konsoliin, jossa on fmt paketti.
The Jakaa funktio ottaa polkumerkkijonon ja palauttaa polun hakemisto- ja tiedostonimikomponentit. The Jakaa toiminto on hyödyllinen tiedostonimien purkamiseen tai tiedoston päähakemiston määrittämiseen.
paketti pää
tuonti (
"fmt"
"polku/tiedostopolku"
)
funcpää() {
// Asettaa jakamisoperaation tiedostopolun
tiedostopolku := "/home/user/documents/example.txt"
// Käytä Split-toimintoa tiedostopolun jakamiseen
// sen hakemistoon ja tiedostokomponentteihin
dir, tiedosto := tiedostopolku. Split (filePath)
// Tulosta hakemisto- ja tiedostokomponentit
fmt. Println("Hakemisto:", ohjaaja)
fmt. Println("Tiedosto:", tiedosto)
}
The tiedostopolku muuttuja on alkuperäinen tiedostopolku ja Jakaa toiminto ottaa sisään tiedostopolku muuttuja ja palauttaa hakemiston ja tiedostojen nimet merkkijonoina. The pää toiminto tulostaa hakemiston ja tiedostojen nimet konsoliin.
Voit käsitellä tekstitiedostoja Go: lla
Tiedostojärjestelmätoimintojen lisäksi Go tarjoaa paketteja, jotka auttavat sinua työskentelemään useiden tiedostotyyppien, mukaan lukien tekstitiedostojen, kanssa.
Voit käyttää bufio paketti puskuroituihin syöttö- ja tulostustoimintoihin tekstitiedostoissa ja os paketti tiedostojen luomiseen mm.