Cum să interacționați cu fișierele și directoarele din Go

Cum să interacționați cu fișierele și directoarele din Go
Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Lucrul cu fișiere și directoare este o sarcină esențială pentru aplicațiile care trebuie să stocheze și să recupereze date. Go oferă pachetul filepath pentru operațiuni independente de platformă. Pachetul include funcții pentru a manipula căile fișierelor și este compatibil cu Windows, Linux și macOS.





Funcțiile pe care le include calea fișierului pot uni, împărți și curăța căile fișierelor pentru a se asigura că sunt valide. Pachetul are și funcții pentru a parcurge directoare și a căuta fișiere.





REALIZAREA VIDEOCLIPULUI ZILEI

Walking Directory Trees

The Mers pe jos funcția de calea fișierului pachetul oferă funcționalitate pentru a parcurge un arbore de directoare și a parcurge fișiere și directoare într-o manieră de precomandă. Acesta va vizita recursiv toate directoarele de sub rădăcina dată. Funcția Walk preia un director rădăcină și o funcție care preia calea, instanța de informații despre fișier și o instanță de eroare.





 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)
    }
}

Acest program definește directorul rădăcină ca director de lucru curent. The principal funcția traversează directoarele din directorul rădăcină și tipărește numele fișierelor.

  rezultat din Walking Directory Trees

Potrivirea fișierelor cu potrivirea modelului

Puteți folosi Meci funcția de a potrivi numele fișierelor cu un model. Sintaxa modelului se bazează pe comun sintaxa wildcard a fișierului, care utilizează metacaractere , cunoscut sub numele de modele glob în mediile Unix.



cum să obțineți un fundal transparent
 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 principal funcția se potrivește cu un nume de fișier cu *.TXT model și imprimă un șir în funcție de rezultatul enunțul condiționat .

Curățarea căilor cu funcția Clean

The Curat funcția preia o cale de fișier și returnează o versiune curățată a unei căi prin eliminarea separatoarelor inutile și modificări de director, cum ar fi . (directorul curent) și .. (directorul părinte) segmente.





Curățarea căilor de fișiere este utilă, deoarece ajută la evitarea erorilor dacă o cale conține separatori redundanți sau segmente nevalide sau construiește căi independente de directorul de lucru curent.

 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 cale variabila este calea inițială a fișierului și Curat funcția curăță cale variabilă și returnează calea fișierului curățată. The principal funcția imprimă căile fișierelor inițiale și curate.





  rezultat din curățarea căilor cu funcția de curățare

Unirea și împărțirea căilor de fișiere în Go

The A te alatura și Despică funcțiile oferă funcționalitate pentru unirea și împărțirea căilor de fișiere.

Funcția Join preia orice număr de elemente de cale. Returnează un singur șir de cale de fișier care rezultă din concatenarea acelor elemente folosind separatorul de cale adecvat pentru sistemul de operare. The A te alatura funcția este utilă pentru a construi căi de fișiere independente de sistemul de fișiere de bază.

 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 calea 1 , calea 2 , și calea 3 variabilele sunt nume de foldere, iar calea4 variabila este un nume de fișier. The A te alatura funcția preia numele variabilelor de cale și returnează calea fișierului concatenat. The principal funcția imprimă calea fișierului concatenat către consolă cu fmt pachet.

The Despică funcția preia un șir de cale și returnează directorul căii și componentele numelui de fișier. The Despică funcția este utilă pentru extragerea numelor de fișiere sau pentru determinarea directorului părinte al unui fișier.

 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 filePath variabila este calea fișierului original și Despică funcția ia în filePath variabilă și returnează numele directorului și fișierelor ca șiruri de caractere. The principal funcția imprimă directorul și numele fișierelor pe consolă.

Puteți manipula fișiere text cu Go

Pe lângă funcționalitatea sistemului de fișiere, Go oferă pachete pentru a vă ajuta să lucrați cu mai multe tipuri de fișiere, inclusiv fișiere text.

Puteți folosi bufio pachet la operațiunile de intrare și ieșire tamponate pe fișierele text și tu pachet pentru crearea de fișiere, printre alte operațiuni.

cum să rulezi Mac pe Windows