我们可以利用递归和ioutil.ReadDir(遍历当前所有文件),IsDir(判断是否是目录)方法,来遍历整个文件夹
package main import ( "io/ioutil" "fmt" ) func main() { dirname:="C:\\liu\\pro" //1层:mmm,3个子内容 //fileInfos,_:=ioutil.ReadDir(dirname) //fmt.Println(len(fileInfos)) //for _,fi := range fileInfos{ // fmt.Println(fi.Name(),fi.IsDir())//C:\\liu\\pro\\mmm\\nn // if fi.IsDir(){ // fileInfos2,_:=ioutil.ReadDir(dirname+"\\"+fi.Name()) // fmt.Println(len(fileInfos2)) // for _,fi2:=range fileInfos2{ // fmt.Println("\t",fi2.Name(),fi2.IsDir()) // } // } //} listFiles(dirname) } func listFiles(dirname string) { fileInfos,_:=ioutil.ReadDir(dirname) for _,fi:=range fileInfos{ filename := dirname+"\\"+fi.Name() //拼写当前文件夹中所有的文件地址 fmt.Println(filename) //打印文件地址 if fi.IsDir(){ //判断是否是文件夹 如果是继续调用把自己的地址作为参数继续调用 listFiles(filename) //递归调用 } } }