go-列出当前目录下的所有文件
使用ReadDir
函数,并且判断当前是目录文件还是单独文件,如果是目录文件则递归打印。
package main
import (
"fmt"
"io/ioutil"
"os"
)
func listAll(path string, curLayer int){
fileInfos,err:=ioutil.ReadDir(path)
if err!=nil{
fmt.Println("ReadDir failed,error:%v\n",err)
return
}
for _,info:=range fileInfos{
if info.IsDir(){
for tmpHier:=curLayer;tmpHier>0;tmpHier--{
fmt.Printf("|\t")
}
fmt.Println(info.Name(),"\\")
listAll(path+"/"+info.Name(),curLayer+1)
}else{
for tmpHier:=curLayer;tmpHier>0;tmpHier--{
fmt.Printf("|\t")
}
fmt.Println(info.Name())
}
}
}
func main(){
dir:=os.Args[1]
listAll(dir,0)
}