如何在 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` 之间有什么区别?
请告诉我这个任务的最佳实践。