go学习7

go 学习7(获取路径下的文件,再根据条件筛选)


package common

import (
	"fmt"
	"io/ioutil"
	"strings"
)

//pathname 路径名    list要返回的目录列表  isAll是否要搜索子目录
func GetAllFile(pathname string,list []string,isAll bool) []string {
	pathname = strings.TrimSuffix(pathname,"/") //如果路径是以/结尾的,则删除尾部的/
	rd, err := ioutil.ReadDir(pathname) //该路径下的所有文件和文件夹
	if err != nil {
		fmt.Println(err)
	}
	for _, fi := range rd {
		if fi.IsDir() && isAll { //是否是文件夹  并且要搜索所有子目录
			GetAllFile(pathname +"/"+ fi.Name(),list,true) //递归
		} else {
			list = append(list,pathname + "/" + fi.Name())
		}
	}
	return list
}

//根据前后缀筛选文件
func ScreenFilenName(list []string,prefix string,suffix string) []string{
	var result []string
	for _,fileName := range list{
		HasPrefix := strings.HasPrefix(fileName,prefix) //前缀筛选
		HasSuffix := strings.HasSuffix(fileName,suffix) //后缀筛选
		if HasPrefix && HasSuffix {
			result = append(result,fileName)
		}
	}
	return result
}
func main()  {
	var result []string
	list := GetAllFile("test",result,true) //获取路径下文件
	fmt.Println(list)
	result = ScreenFilenName(list,"","") //根据前后缀筛选文件
	fmt.Println(result)
}

猜你喜欢

转载自blog.csdn.net/qq_38083665/article/details/82422936