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.
Á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.
paquete principal
importar (
"fmt"
"ruta/ruta de archivo"
"os"
)funciónprincipal() {
// Define el directorio raíz para iniciar la caminata
raíz := "."// Usa la función Walk para recorrer el árbol de directorios
err := ruta del archivo. Caminar (raíz, función(camino cadena, información os. FileInfo, err error)error {
si error! = nulo {
devolver errar
}// Imprime el nombre de cada archivo o directorio
fmt. Imprimir (ruta)
devolvernulo
})
// Comprueba si hay errores
si error! = nulo {
fmt. imprimirf("Error al recorrer el árbol de directorios: %v\n", errar)
}
}
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.
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.
paquete principal
importar (
"fmt"
"ruta/ruta de archivo"
)funciónprincipal() {
// Define el patrón para que coincida
patrón := "*.TXT"// Usa la función Match para hacer coincidir el patrón en los archivos
coincide, err := ruta de archivo. Partido (patrón, "archivo.txt")si error! = nulo {
fmt. imprimirf("Error en el patrón de coincidencia: %v\n", errar)
devolver
}
// Imprime el resultado del partido
si fósforo {
fmt. imprimir("El archivo coincide con el patrón".)
} demás {
fmt. imprimir("El archivo no coincide con el patrón".)
}
}
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.
paquete principal
importar (
"fmt"
"ruta/ruta de archivo"
)funciónprincipal() {
// Crea una ruta con separadores redundantes y segmentos inválidos
ruta := "/foo/bar//baz/.././qux/"// Limpia el camino
cleanPath := ruta del archivo. Limpiar (camino)
// Imprime las rutas de archivo originales y limpias
fmt. imprimir("Ruta original:", camino)
fmt. imprimir("Ruta limpia:", caminolimpio)
}
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.
Unir y dividir rutas de archivos en Go
El Unirse y Dividir funciones proporcionan funcionalidad para unir y dividir rutas de archivos.
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.
paquete principal
importar (
"fmt"
"ruta/ruta de archivo"
)funciónprincipal() {
// Define cuatro rutas de archivo para la operación de combinación
camino1 := "carpeta1"
camino2 := "carpeta2"
camino3 := "subcarpeta1"
camino4 := "ejemplo.txt"// Une las cuatro rutas de archivos en una sola ruta
joinPath := ruta del archivo. Unirse (ruta1, ruta2, ruta3, ruta4)
// Imprime la ruta del archivo unificado
fmt. imprimir("Ruta unida:", ruta unida)
}
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.
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.
paquete principal
importar (
"fmt"
"ruta/ruta de archivo"
)
funciónprincipal() {
// Establece la ruta del archivo para la operación de división
ruta del archivo := "/inicio/usuario/documentos/ejemplo.txt"
// Use la función Dividir para dividir la ruta del archivo
// en su directorio y componentes de archivo
dir, archivo := ruta del archivo. Dividir (ruta del archivo)
// Imprime el directorio y los componentes del archivo
fmt. imprimir("Directorio:", dirección)
fmt. imprimir("Archivo:", archivo)
}
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 sistema operativo paquete para la creación de archivos, entre otras operaciones.