Avatar ·

Cómo obtener una lista de archivos y carpetas en un directorio en Go? (ioutil.ReadDir vs os.ReadDir)

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con una tarea: necesito leer el contenido de una carpeta y mostrar una lista de todos los archivos y subcarpetas. Busqué en Google y encontré varias formas, pero no puedo entender cuál es la correcta y moderna. Por ejemplo, probé usar `ioutil.ReadDir`, pero en la documentación dice que este package está deprecated (obsoleto). También vi `os.ReadDir` y `filepath.Walk`. Tengo este código: ```go package main import ( "fmt" "io/ioutil" "log" ) func main() { files, err := ioutil.ReadDir(".") if err != nil { log.Fatal(err) } for _, f := range files { fmt.Println(f.Name()) } } ``` Funciona, pero el IDE subraya `ioutil` y dice que está obsoleto. ¿Cómo obtener correctamente la lista de archivos en Go 1.16+? ¿Necesito ordenar el resultado? ¿Cómo distinguir un archivo de una carpeta? ¿Y hay alguna diferencia entre `os.ReadDir` y `ioutil.ReadDir` además del nombre? Por favor, indíquenme las best practices para esta tarea.