package main
import (
"flag"
"fmt"
"os"
"path/filepath"
"strconv"
"strings"
)
func WalkDir(dirPth, suffix
string) (files []
string, err error) {
files =
make([]
string,
0,
500)
suffix = strings.ToUpper(suffix)
err = filepath.Walk(dirPth,
func(filename
string, fi os.FileInfo, err error) error {
if fi.IsDir() {
return nil
}
if strings.HasSuffix(strings.ToUpper(fi.Name()), suffix) {
files =
append(files, filename)
}
return nil
})
return files, err
}
func main() {
path := flag.String(
"path",
"./",
"目录路径")
suffix := flag.String(
"suffix",
".sql",
"文件扩展名")
flag.Usage =
func() {
fmt.Fprintf(os.Stderr,
"功能:%s!\n",
"删除指定目录下的指定扩展名的")
fmt.Fprintf(os.Stderr,
"Usage of %s:\n", os.Args
[0])
flag.PrintDefaults()
fmt.Fprintln(os.Stderr,
" -h : show help usage")
}
flag.Parse()
files, err := WalkDir(*path, *suffix)
if err !=
nil {
fmt.Println(files, err)
return
}
filesnum :=
len(files)
fmt.Println(strings.Join(files,
"\n"))
fmt.Println(
"文件总数:" + strconv.Itoa(filesnum))
done :=
make(
chan int, filesnum)
for _, v :=
range files {
filename := v
go func() {
os.Remove(filename)
done <-
1
}()
}
for i :=
0; i < filesnum; i++ {
<-done
}
fmt.Println(
"finish ^^!")
}