2016-09-22 105 views
1

想知道是否有快速獲取包含根目錄本身的根目錄中的文件列表的方法。在Go中遞歸地返回文件列表,其中包括根目錄

sourceDir, err := os.Open(startPath) 
if err != nil { 
     return err 
} 
defer sourceDir.Close() 

files, err := sourceDir.Readdir(0) 

這隻有「startPath」中的所有文件/子目錄不是「startPath」本身。我必須手動將startPath的fileInfo手動附加到文件。有更快的方法嗎?

回答

3

這是filepath.Walk的用途。

這將遞歸地打印出每個文件名:

filepath.Walk(startPath, func(path string, info os.FileInfo, err error) error { 
    fmt.Println(path) 
    if err != nil { 
     fmt.Println("ERROR:", err) 
    } 
    return nil 
}) 
相關問題