Avatar ·

Cómo obtener una lista de archivos y carpetas en un directorio en Go: guía completa

¡Hola a todos! Soy nuevo en Go y estoy intentando resolver una tarea simple: necesito obtener una lista de todos los archivos y subcarpetas en un directorio dado. Intenté usar la función `ioutil.ReadDir`, pero está marcada como obsoleta. Luego me topé con `os.ReadDir`, pero no entendí bien cómo usarla. Esto es lo que probé: ```go package main import ( "fmt" "io/ioutil" ) func main() { files, err := ioutil.ReadDir(".") if err != nil { fmt.Println("Error:", err) return } for _, f := range files { fmt.Println(f.Name()) } } ``` El código compila, pero el IDE subraya `ioutil.ReadDir` y dice que está deprecated. Quiero usar un enfoque moderno. Además, necesito: 1. Obtener solo archivos (sin carpetas). 2. Obtener solo carpetas. 3. Recorrer recursivamente todos los subdirectorios. 4. Filtrar por extensión (por ejemplo, solo archivos `.go`). ¿Podrían indicarme cómo hacerlo correctamente en Go? Preferiblemente con ejemplos. ¡Gracias de antemano!