Avatar ·

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.