go递归打印指定目录下的所有文件及文件夹
Posted endurance9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go递归打印指定目录下的所有文件及文件夹相关的知识,希望对你有一定的参考价值。
func treedir(fpath string){
// 获取fileinfo
if finfo,err := os.Stat(fpath); err == nil {
// 判断是不是目录 如果不是目录而是文件 打印文件path并跳出递归
if !finfo.IsDir() {
fmt.Println(fpath)
return
}else{
// 是目录的情况 打印目录path
fmt.Println(fpath)
f,_ := os.Open(fpath) // 通过目录path open一个file
defer f.Close()
names,_ := f.Readdirnames(0) // 通过file的Readdirnames 拿到当前目录下的所有filename
for _,name := range names{
newpath := path.Join(fpath,name) // 遍历names 拼接新的fpath
treedir(newpath) // 递归
}
}
}
}
以上是关于go递归打印指定目录下的所有文件及文件夹的主要内容,如果未能解决你的问题,请参考以下文章