Cómo interactuar con archivos y directorios en Go

Cómo interactuar con archivos y directorios en Go
Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Trabajar con archivos y directorios es una tarea esencial para las aplicaciones que necesitan almacenar y recuperar datos. Go proporciona el paquete de ruta de archivo para operaciones de ruta de archivo independientes de la plataforma. El paquete incluye funciones para manipular rutas de archivos y es compatible con Windows, Linux y macOS.





Las funciones que incluye filepath pueden unir, dividir y limpiar rutas de archivos para garantizar que sean válidas. El paquete también tiene funciones para recorrer directorios y buscar archivos.





cómo escribir cursiva en facebook messenger
MAKEUSEOF VÍDEO DEL DÍA

Árboles de directorios ambulantes

El Caminar función de la ruta de archivo El paquete proporciona funcionalidad para recorrer un árbol de directorios y recorrer archivos y directorios en forma de pedido anticipado. Visitará recursivamente todos los directorios debajo de la raíz dada. La función Walk toma un directorio raíz y una función que toma la ruta, la instancia de información del archivo y una instancia de error.





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

Este programa define el directorio raíz como el directorio de trabajo actual. El principal La función recorre los directorios en el directorio raíz e imprime los nombres de los archivos.

  resultado de árboles de directorios ambulantes

Coincidencia de archivos con coincidencia de patrones

Puedes usar el Fósforo función para hacer coincidir los nombres de archivo con un patrón. La sintaxis del patrón se basa en el común sintaxis de comodín de archivo, que utiliza metacaracteres , conocidos como patrones globales en entornos Unix.



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

El principal función compara un nombre de archivo con el *.TXT patrón e imprime una cadena dependiendo del resultado de la declaración condicional .

Limpieza de rutas con la función Limpiar

El Limpio La función toma una ruta de archivo y devuelve una versión limpia de una ruta al eliminar los separadores innecesarios y los cambios de directorio, como . (directorio actual) y .. (directorio principal) segmentos.





Limpiar las rutas de los archivos es útil porque ayuda a evitar errores si una ruta contiene separadores redundantes o segmentos no válidos, o construye rutas independientes del directorio de trabajo actual.

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

El camino variable es la ruta del archivo inicial, y la Limpio La función limpia el camino variable y devuelve la ruta del archivo limpio. El principal La función imprime las rutas de archivo iniciales y limpias.





  resultado de la limpieza de rutas con la función de limpieza

Unir y dividir rutas de archivos en Go

El Unirse y Dividir funciones proporcionan funcionalidad para unir y dividir rutas de archivos.

mitsumi electric co., ltd

La función Unir admite cualquier número de elementos de ruta. Devuelve una única cadena de ruta de archivo que resulta de la concatenación de esos elementos usando el separador de ruta apropiado para el sistema operativo. El Unirse La función es útil para construir rutas de archivos independientes del sistema de archivos subyacente.

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

El camino1 , camino2 , y camino3 las variables son nombres de carpetas y las camino4 variable es un nombre de archivo. El Unirse La función toma los nombres de las variables de la ruta y devuelve la ruta del archivo concatenado. El principal La función imprime la ruta del archivo concatenado a la consola con el fmt paquete.

cómo usar el editor de video shotcut 2017

El Dividir La función toma una cadena de ruta y devuelve el directorio de la ruta y los componentes del nombre del archivo. El Dividir La función es útil para extraer nombres de archivos o determinar el directorio principal de un archivo.

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

El ruta de archivo variable es la ruta del archivo original, y la Dividir función toma en el ruta de archivo variable y devuelve los nombres de directorio y archivo como cadenas. El principal La función imprime el directorio y los nombres de los archivos en la consola.

Puede manipular archivos de texto con Go

Junto con la funcionalidad del sistema de archivos, Go proporciona paquetes para ayudarlo a trabajar con múltiples tipos de archivos, incluidos los archivos de texto.

Puedes usar el bufio paquete para operaciones de entrada y salida en búfer en archivos de texto y el paquete para la creación de archivos, entre otras operaciones.