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 關注
- 114 瀏覽
添加回答
舉報