package main import ( "fmt" "io/ioutil" "os" "path" "strings" "sync" ) var wg sync.WaitGroup func main() { wg.Add(1) // 目录 p := "C:\\Users\\zjw\\Documents\\Java高级开发工程师" // 要被去掉的文件名称中的字符串 subStr := "【xxxxx】" go RenameFiles(p, subStr) wg.Wait() } func RenameFiles(pa string, subStr string) { fileInfos, err := ioutil.ReadDir(pa) if err != nil { panic(err) } for _, fileInfo := range fileInfos { if fileInfo.IsDir() { wg.Add(1) go RenameFiles(path.Join(pa, fileInfo.Name()), subStr) } else { var fname = rmStr(fileInfo.Name(), subStr) newFileName := path.Join(pa, fname) err := os.Rename(path.Join(pa, fileInfo.Name()), newFileName) if err != nil { fmt.Println("重命名失败: ", err) } } fmt.Println(path.Join(pa,fileInfo.Name())) } wg.Done() } func rmStr(str1, str2 string) string { if strings.Contains(str1, str1) { split := strings.Split(str1, str2) return strings.Join(split, "") } else { return str1 } }