golang 遍历文件夹的方法
时间: 2023-07-26 20:40:50 浏览: 56
在 Golang 中,遍历文件夹可以使用 `filepath.Walk` 函数,该函数可以递归遍历指定目录下的所有文件和子目录。除此之外,还可以使用 `os.ReadDir` 函数遍历一个目录下的所有文件和子目录。
下面是 `filepath.Walk` 和 `os.ReadDir` 的示例代码:
```go
package main
import (
"fmt"
"io/fs"
"os"
"path/filepath"
)
// 使用 filepath.Walk 遍历文件夹
func walkDir(path string) {
err := filepath.Walk(path, func(path string, info fs.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
fmt.Printf("Directory: %s\n", path)
} else {
fmt.Printf("File: %s\n", path)
}
return nil
})
if err != nil {
fmt.Println(err)
}
}
// 使用 os.ReadDir 遍历文件夹
func readDir(path string) {
files, err := os.ReadDir(path)
if err != nil {
fmt.Println(err)
return
}
for _, file := range files {
if file.IsDir() {
fmt.Printf("Directory: %s\n", file.Name())
readDir(filepath.Join(path, file.Name()))
} else {
fmt.Printf("File: %s\n", file.Name())
}
}
}
func main() {
// 遍历当前目录
walkDir(".")
readDir(".")
}
```
上述代码会遍历当前目录下的所有文件和子目录,并输出每个文件和子目录的名称。你可以根据实际需求对遍历到的每个文件和子目录进行处理。
相关推荐
![go](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)