用到的包 🔗
regexp
os
string
strconv
扫描路径函数 🔗
1func getFilelist(path string,re string){
2 err:=filepath.Walk(path,func (path string,f os.FileInfo,err error) error {
3 if (f==nil){return err}
4 if f.IsDir(){return nil}
5 fmt.Println(path)
6 //正则匹配路径名和需要查找的文件名
7 ok,_:=regexp.MatchString(re,path)
8 if ok{
9 list=append(list,path)
10 }
11 WriteFile(list)
12 //for k,v:=range list{
13 // fmt.Println(k,"==> 查找路径:",v)
14 //}
15 return nil
16 })
17 if err!=nil{
18 fmt.Printf("filepath.Walk() returned %v\n",err)
19 }
20}
写入文件保存 🔗
1func WriteFile(file []string){
2 //保存文件名
3 filename:="./output.txt"
4 //判断文件是否存在,存在即删除
5 _,err := os.Stat(filename)
6 if err == nil{
7 os.Remove(filename)
8 }
9 //打开此文件
10 fd,_:=os.OpenFile(filename,os.O_RDWR|os.O_CREATE|os.O_APPEND,0644)
11 //循环值并且转换类型
12 for k,v:=range file{
13 content:=strings.Join([]string{strconv.Itoa(k),"==> 查找路径:",v,"\n"},"")
14 buf:=[]byte(content)
15 fd.Write(buf)
16 }
17 defer fd.Close()
18}
入口函数 🔗
flag包详解
1func main(){
2 flag.Parse()
3 root,re:=flag.Arg(0),flag.Arg(1)
4 getFilelist(root,re)
5}