网上找了不少例子,貌似都有一点点问题,后来挑了个靠谱点的,修改之后就可以用了,二话不说,直接上代码和截图。 这里只是会获取文件,文件夹是不会打印出来的。
//获取指定目录下的所有文件,包含子目录下的文件
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”)
}
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2019/03/07/go-获取指定目录下的所有文件/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!