osReadDirz递归读取目录中所有文件如果包含目录接着遍历读取
读取目录中所有文件并递归遍历子目录的代码示例:
package main
import (
"fmt"
"io/fs"
"os"
)
func main() {
// 要读取的目录路径
dirPath := "./example"
// 递归读取目录中所有文件
err := readDirRecursive(dirPath)
if err != nil {
fmt.Println(err)
}
}
func readDirRecursive(dirPath string) error {
// 读取目录中所有文件和子目录
entries, err := os.ReadDir(dirPath)
if err != nil {
return err
}
// 遍历所有文件和子目录
for _, entry := range entries {
if entry.IsDir() {
// 如果是子目录,递归读取子目录中的文件
subDirPath := dirPath + "/" + entry.Name()
err = readDirRecursive(subDirPath)
if err != nil {
return err
}
} else {
// 如果是文件,打印文件路径
filePath := dirPath + "/" + entry.Name()
fmt.Println(filePath)
}
}
return nil
}
在上述代码中,readDirRecursive函数用于递归读取目录中的所有文件和子目录。首先,它通过os.ReadDir函数读取目录中的所有文件和子目录。然后,它遍历所有文件和子目录,如果是子目录,则递归调用readDirRecursive函数读取子目录中的文件;如果是文件,则打印文件路径。最后,函数返回nil表示读取成功,或返回读取过程中遇到的错误
原文地址: https://www.cveoy.top/t/topic/fsRb 著作权归作者所有。请勿转载和采集!