Como obter a lista de arquivos e pastas em um diretório em Go? (ioutil.ReadDir vs os.ReadDir)
Olá a todos! Comecei a estudar Go recentemente e me deparei com uma tarefa: preciso ler o conteúdo de uma pasta e exibir a lista de todos os arquivos e subpastas. Pesquisei no Google e encontrei algumas maneiras, mas não consigo entender qual delas é a correta e moderna.
Por exemplo, tentei usar `ioutil.ReadDir`, mas na documentação diz que este pacote está deprecated (obsoleto). Também vi `os.ReadDir` e `filepath.Walk`. Tenho 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())
}
}
```
Ele funciona, mas o IDE sublinha `ioutil` e diz que está obsoleto. Como obter corretamente a lista de arquivos em Go 1.16+? Preciso ordenar o resultado? Como diferenciar um arquivo de uma pasta? E há diferença entre `os.ReadDir` e `ioutil.ReadDir` além do nome?
Por favor, me indiquem as best practices para esta tarefa.