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


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

//获取指定目录下的所有文件,包含子目录下的文件
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")
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注