go學習7
阿新 • • 發佈:2018-11-10
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) }