网上找了不少例子,貌似都有一点点问题,后来挑了个靠谱点的,修改之后就可以用了,二话不说,直接上代码和截图。
这里只是会获取文件,文件夹是不会打印出来的。
//获取指定目录下的所有文件,包含子目录下的文件
func GetAllFiles(dirPath string) (files []string, err error) {
var dirs []string
dir, err := ioutil.ReadDir(dirPath)
if err != nil {
return nil, err
}
PthSep := string(os.PathSeparator)
//suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写
for _, fi := range dir {
if fi.IsDir() {
dirs = append(dirs, dirPath+PthSep+fi.Name())
newfiles, _ := GetAllFiles(dirPath + PthSep + fi.Name())
files = append(files, newfiles...)
} else {
files = append(files, dirPath+PthSep+fi.Name())
}
}
return files, nil
}
func main() {
fmt.Println("test build")
files, err := sg_fileUtil.GetAllFiles(".")
if err != nil {
panic(err)
}
for i, _ := range files {
fmt.Println(files[i])
}
time.Sleep(time.Duration(10) * time.Second)
fmt.Println("test complete")
}