Avatar ·

如何在 Go 中获取目录中的文件和文件夹列表?(ioutil.ReadDir vs os.ReadDir)

大家好!我刚开始学习 Go,遇到了一个任务:需要读取文件夹内容并列出所有文件和子文件夹。我搜索了一下,找到了几种方法,但不知道哪种是正确的和现代的。 例如,我尝试使用 `ioutil.ReadDir`,但文档中说这个包已弃用。我还看到了 `os.ReadDir` 和 `filepath.Walk`。我有这样的代码: ```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()) } } ``` 它能运行,但 IDE 在 `ioutil` 下划线提示它已弃用。如何在 Go 1.16+ 中正确获取文件列表?我需要排序结果吗?如何区分文件和文件夹?除了名称之外,`os.ReadDir` 和 `ioutil.ReadDir` 之间有什么区别? 请告诉我这个任务的最佳实践。