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.