ioutil中提供了一个非常翻遍的函数函数ReadDir,他读取目录并返回排好序的文件以及子目录名([]os.FileInfo)

example:编写程序输出某目录下的所有文件。

package mainimport ("io/ioutil""fmt""os"
)func listAll(path string, curHier int) {readerInfos ,err := ioutil.ReadDir(path)if err != nil {fmt.Println(err)return}for _, info := range readerInfos {if info.IsDir() {for tmpheir := curHier; tmpheir >0; tmpheir-- {fmt.Printf("|\t")}fmt.Println(info.Name(),"\\")listAll(path + "\\" + info.Name(),curHier+1)}else {for tmpheir := curHier ;tmpheir >0; tmpheir-- {fmt.Printf("|\t")}fmt.Println(info.Name())}}
}
func main() {dir := os.Args[1]listAll(dir,0)
}

我是在win10 环境中试验。成功