GO语言中怎么遍历文件夹

因为文件夹下还有子文件夹,而ioutil包的ReadDir()只能获取一层目录,所以我们需要自己去设计算法来实现,最容易实现的思路就是使用递归。

示例代码:

package main

import (
   "io/ioutil"
   "fmt"
   "log"
)

func main() {
   /**
   遍历文件夹:
    */

   dirname := "/Users/ruby/Documents/pro"
   listFiles(dirname, 0)

}

func listFiles(dirname string, level int) {
   // level用来记录当前递归的层次
   // 生成有层次感的空格
   s := "|--"
   for i := 0; i < level; i++ {
       s = "|   " + s
   }

   fileInfos, err := ioutil.ReadDir(dirname)
   if err != nil{
       log.Fatal(err)
   }
   for _, fi := range fileInfos {
       filename := dirname + "/" + fi.Name()
       fmt.Printf("%s%s\n", s, filename)
       if fi.IsDir() {
           //继续遍历fi这个目录
           listFiles(filename, level+1)
       }
   }
}

运行结果:

GO语言中怎么遍历文件夹

原创文章,作者:KKEFO,如若转载,请注明出处:https://www.beidanyezhu.com/a/28224.html

(0)
KKEFO的头像KKEFO
上一篇 2025-01-21
下一篇 2025-01-21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部