2016-09-22 109 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 
}) 
相关问题