Avatar ·

如何在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中正确实现这些功能?最好有示例代码。提前感谢!