2 回答

TA贡献1848条经验 获得超6个赞
下面是代码的重新实现。但是,它并不完整,因为您需要更好地澄清名称之前的样子,以及它们之后应该是什么样子。
package main
import (
"os"
"path/filepath"
"strings"
)
func main() {
dir := `D:\GoLang\src\gocourse\renamefile\rename`
list, err := os.ReadDir(dir)
if err != nil {
panic(err)
}
for _, each := range list {
name := each.Name()
newName := strings.ReplaceAll(name, "_working space 1 copy", "")
os.Rename(filepath.Join(dir, name), filepath.Join(dir, newName))
}
}

TA贡献1786条经验 获得超11个赞
我想你可以只解析每个文件名的第一部分,直到它遇到下划线。一个函数,用于说明是否确定要提取的文件始终以相同的符号“_”结尾。
fileNames := []string{"ball_working space 1.png", "ball_working space 1 copy.png",
"ball_working space 1 copy 1.png", "ball_working space 1 copy 2.png"}
func parseName(names []string) {
res := []string{""}
for ind, val := range names {
data := val[:strings.IndexByte(val, '_')] // reads until the hardcoded symbol
data += "-" + strconv.Itoa(ind)
res = append(res, data)
return res
}
然后,您将拥有一个包含所有“正确”文件名的切片,您可以按照自己的喜好方式解压缩它。
- 2 回答
- 0 关注
- 121 浏览
添加回答
举报