Avatar ·

Como obter a lista de arquivos e pastas em um diretório em Go: guia completo

Olá a todos! Sou novo em Go e estou tentando resolver uma tarefa simples: preciso obter a lista de todos os arquivos e subpastas em um diretório específico. Tentei usar a função `ioutil.ReadDir`, mas ela está marcada como obsoleta. Depois encontrei `os.ReadDir`, mas não entendi bem como usá-la. Aqui está o que tentei: ```go package main import ( "fmt" "io/ioutil" ) func main() { files, err := ioutil.ReadDir(".") if err != nil { fmt.Println("Erro:", err) return } for _, f := range files { fmt.Println(f.Name()) } } ``` O código compila, mas a IDE sublinha `ioutil.ReadDir` e diz que está deprecated. Quero usar a abordagem moderna. Além disso, preciso: 1. Obter apenas arquivos (sem pastas). 2. Obter apenas pastas. 3. Percorrer recursivamente todas as subdiretórios. 4. Filtrar por extensão (por exemplo, apenas arquivos `.go`). Me digam como fazer isso corretamente em Go? De preferência com exemplos. Desde já, obrigado!