Kaip bendrauti su failais ir katalogais Go

Kaip bendrauti su failais ir katalogais Go
Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

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.

  Rezultatas iš Walking Directory Trees

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.





  Valymo takų su valymo funkcija rezultatas

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ų.