Go基础_1_66 ioutil 遍历目录

Tutorial: Go初级 Category: Go Published: 2026-04-07 13:58:26 Views: 21 Likes: 0 Comments: 0
package main

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

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() {
            //递归调用方法
            listFiles(filename, level+1)
        }
    }

    /*
        |--D:\Go\web2\aa.txt
        |--D:\Go\web2\bb.txt
        |--D:\Go\web2\demo.go
        |--D:\Go\web2\dir1
        |  |--D:\Go\web2\dir1\Test1927239612
        |  |  |--D:\Go\web2\dir1\Test1927239612\text.txt1079166724
        |  |--D:\Go\web2\dir1\a.txt
        |  |--D:\Go\web2\dir1\b.tct
        |--D:\Go\web2\test.png
        |--D:\Go\web2\user.db
    */
}

func main() {
    /**
    遍历文件夹:
    */
    dirname := "D:\\Go\\web2"
    listFiles(dirname, 0)

}