package main
import (
"fmt"
"io/ioutil"
"os"
"path"
"strconv"
"strings"
)
func Rename(filepath string) {
files, err := ioutil.ReadDir(filepath)
if err != nil {
fmt.Println(err)
return
}
for _, file := range files {
if strings.Contains(file.Name(), "illust_") {
fmt.Println(file.Name())
newName := file.Name()[7:15] + "_p0" + path.Ext(file.Name())
_, err = os.Stat(filepath + "\\" + newName)
if err == nil { //同名文件在目录下已存在
for {
n := strings.Index(newName, "p")
index := newName[n+1]
i, _ := strconv.Atoi(string(index))
i += 1
newName = strings.Replace(newName, "_p"+string(index), "_p"+strconv.Itoa(i), 1)
_,err=os.Stat(filepath + "\\" + newName)
if err!=nil{
break
}
}
}
err = os.Rename(filepath+"\\"+file.Name(), filepath+"\\"+newName)
if err != nil {
fmt.Println(err)
}
}
}
}
func main() {
Rename("D:\\a")
}
go批量文件重命名
最新推荐文章于 2023-08-15 13:42:57 发布