目錄夾遍訪是非常常見的需求,以下透過 Go 語言的 filepath.Walk 進行目錄夾的檔案遍訪。

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main
 
import (
    "fmt"
    "os"
    "path/filepath"
)


func main() {
    var files []string
 
    root := "C:\\"
    err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        
        if false == info.IsDir(){
            files = append(files, path)
            // fmt.Println(path)
        }

        return nil
    })

    if err != nil {
        panic(err)
    }

    for _, file := range files {
        fmt.Println(file)
    }
}

 

以上程式於第13行位置定義掃描目標目錄的根目錄(Root Path),程式會從root path 往下進行檢查。

在第 16 行判斷是否為目錄夾名稱或者是檔案,如果是檔案則將路徑儲存於files的陣列變數當中。

最終在以 for-loop 將儲存的檔案路徑輸出至Console

 

arrow
arrow
    文章標籤
    golang
    全站熱搜
    創作者介紹
    創作者 Lung-Yu,Tsai 的頭像
    Lung-Yu,Tsai

    Lung-Yu,Tsai 的部落格

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()