go 获取指定目录下的所有文件

  • 内容
  • 评论
  • 相关

网上找了不少例子,貌似都有一点点问题,后来挑了个靠谱点的,修改之后就可以用了,二话不说,直接上代码和截图。
这里只是会获取文件,文件夹是不会打印出来的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//获取指定目录下的所有文件,包含子目录下的文件
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")
}

原创文章,转载请注明: 转载自专注游戏开发

本文链接地址: go 获取指定目录下的所有文件

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注