Darbas su failais ir katalogais yra esminė užduotis programoms, kurioms reikia saugoti ir gauti duomenis. „Go“ teikia failų kelio paketą, skirtą nuo platformos nepriklausomoms failų kelio operacijoms. Į paketą įtrauktos funkcijos, skirtos valdyti failų kelius, ir jis suderinamas su „Windows“, „Linux“ ir „MacOS“.
Funkcijos, kurias apima failo kelias, gali sujungti, padalinti ir išvalyti failų kelius, kad įsitikintų, jog jie galioja. Paketas taip pat turi vaikščiojimo katalogais ir failų paieškos funkcijas.
DIENOS VAIZDO ĮRAŠO PAGALBA
Vaikščiojantys katalogų medžiai
The Vaikščioti funkcija bylos kelias Paketas suteikia galimybę vaikščioti po katalogų medį ir iš anksto užsakyti failus bei katalogus. Jis rekursyviai aplankys visus katalogus, esančius žemiau nurodytos šaknies. Funkcija Walk paima šakninį katalogą ir funkciją, kuri paima kelią, failo informacijos pavyzdį ir klaidos egzempliorių.
package main
import (
"fmt"
"path/filepath"
"os"
)
func main() {
// Defines the root directory to start the walk
root := "."
// Uses the Walk function to walk the directory tree
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// Prints the name of each file or directory
fmt.Println(path)
return nil
})
// Checks for errors
if err != nil {
fmt.Printf("Error walking directory tree: %v\n", err)
}
}
Ši programa apibrėžia šakninį katalogą kaip dabartinį darbo katalogą. The pagrindinis funkcija eina per šakninio katalogo katalogus ir išspausdina failų pavadinimus.
Failų suderinimas su šablonų suderinimu
Galite naudoti Rungtynės funkcija suderinti failų pavadinimus su šablonu. Šablono sintaksė yra pagrįsta bendra failo pakaitos simbolių sintaksė, kuri naudoja metasimbolius , Unix aplinkose žinomi kaip glob modeliai.
package main
import (
"fmt"
"path/filepath"
)
func main() {
// Defines the pattern to match
pattern := "*.txt"
// Uses the Match function to match the pattern on files
match, err := filepath.Match(pattern, "file.txt")
if err != nil {
fmt.Printf("Error matching pattern: %v\n", err)
return
}
// Prints the result of the match
if match {
fmt.Println("File matches pattern.")
} else {
fmt.Println("File does not match pattern.")
}
}
The pagrindinis funkcija atitinka failo pavadinimą su *.txt raštą ir atspausdina eilutę, priklausomai nuo rezultato sąlyginis teiginys .
Valymo takai su valymo funkcija
The Švarus funkcija paima failo kelią ir grąžina išvalytą kelio versiją pašalindama nereikalingus skyriklius ir katalogo pakeitimus, pvz. . (dabartinis katalogas) ir .. (pirminio katalogo) segmentus.
Failų kelių valymas yra naudingas, nes padeda išvengti klaidų, jei kelyje yra perteklinių skyriklių arba negaliojančių segmentų arba sukuriami keliai nepriklausomai nuo esamo darbo katalogo.
package main
import (
"fmt"
"path/filepath"
)
func main() {
// Creates a path with redundant separators and invalid segments
path := "/foo/bar//baz/.././qux/"
// Cleans the path
cleanPath := filepath.Clean(path)
// Prints the original and cleaned file paths
fmt.Println("Original path:", path)
fmt.Println("Cleaned path:", cleanPath)
}
The kelias kintamasis yra pradinis failo kelias ir Švarus funkcija valo kelias kintamąjį ir grąžina išvalytą failo kelią. The pagrindinis funkcija spausdina pradinius ir švarius failų kelius.
Failų kelių sujungimas ir padalijimas programoje „Go“.
The Prisijunk ir Padalinti funkcijos suteikia galimybę sujungti ir padalinti failų kelius.
būdai užsidirbti žaidžiant vaizdo žaidimus
Funkcija Join paima bet kokį kelio elementų skaičių. Jis grąžina vieną failo kelio eilutę, kuri atsiranda sujungus tuos elementus naudojant atitinkamą operacinės sistemos kelio skyriklį. The Prisijunk funkcija yra naudinga kuriant failų kelius nepriklausomai nuo pagrindinės failų sistemos.
package main
import (
"fmt"
"path/filepath"
)
func main() {
// Defines four file paths for the join operation
path1 := "folder1"
path2 := "folder2"
path3 := "subfolder1"
path4 := "example.txt"
// Joins the four file paths together into a single path
joinedPath := filepath.Join(path1, path2, path3, path4)
// Print the unified file path
fmt.Println("Joined Path:", joinedPath)
}
The kelias1 , kelias2 , ir kelias3 kintamieji yra aplankų pavadinimai ir kelias4 kintamasis yra failo pavadinimas. The Prisijunk funkcija paima kelio kintamųjų pavadinimus ir grąžina susietą failo kelią. The pagrindinis funkcija atspausdina sujungto failo kelią į konsolę su fmt paketą.
The Padalinti funkcija paima kelio eilutę ir grąžina kelio katalogo ir failo pavadinimo komponentus. The Padalinti funkcija naudinga norint išgauti failų pavadinimus arba nustatyti pirminį failo katalogą.
package main
import (
"fmt"
"path/filepath"
)
func main() {
// Sets the file path for the split operation
filePath := "/home/user/documents/example.txt"
// Use the Split function to split the file path
// into its directory and file components
dir, file := filepath.Split(filePath)
// Print the directory and file components
fmt.Println("Directory:", dir)
fmt.Println("File:", file)
}
The bylos kelias kintamasis yra pradinio failo kelias ir Padalinti funkcija perima bylos kelias kintamąjį ir grąžina katalogų bei failų pavadinimus kaip eilutes. The pagrindinis funkcija spausdina katalogų ir failų pavadinimus į konsolę.
Galite manipuliuoti tekstiniais failais naudodami „Go“.
Be failų sistemos funkcijų, „Go“ teikia paketus, padedančius dirbti su kelių tipų failais, įskaitant tekstinius failus.
Galite naudoti bufio paketą į buferines įvesties ir išvesties operacijas tekstiniuose failuose ir tu paketas failams kurti, be kitų operacijų.