如何在Go中获取目录中的文件和文件夹列表:完整指南
大家好!我是Go新手,正在尝试解决一个简单问题:需要获取指定目录中所有文件和子文件夹的列表。我尝试过使用`ioutil.ReadDir`函数,但它被标记为已弃用。后来我发现了`os.ReadDir`,但不太清楚如何使用它。
以下是我尝试过的代码:
```go
package main
import (
"fmt"
"io/ioutil"
)
func main() {
files, err := ioutil.ReadDir(".")
if err != nil {
fmt.Println("错误:", err)
return
}
for _, f := range files {
fmt.Println(f.Name())
}
}
```
代码可以编译,但IDE会标出`ioutil.ReadDir`并提示它已弃用。我想使用现代方法。此外,我还需要:
1. 只获取文件(不包括文件夹)。
2. 只获取文件夹。
3. 递归遍历所有子目录。
4. 按扩展名过滤(例如,只获取`.go`文件)。
请告诉我如何在Go中正确实现这些功能?最好有示例代码。提前感谢!