使用Go来完成修改文件名
1在一些文件需要修改为不带汉字的名称上传至服务器才不会出现乱码,手动改名有着很大的工作量,所以写一个脚本自动取改名
package main
import (
"fmt"
"log"
"math/rand"
"os"
"path"
"strconv"
"time"
)
func rename() {
for {
var fileString string
fmt.Println("请输入路径:")
_, err := fmt.Scanln(&fileString)
if err != nil {
log.Println("err")
continue
}
dir, err := os.ReadDir(fileString)
if err != nil {
log.Println("文件夹错误", err)
continue
}
for i := 0; i < len(dir); i++ {
index := rand.NewSource(time.Now().UnixNano())
if !dir[i].IsDir() {
err = os.Rename(path.Join(fileString, dir[i].Name()), path.Join(fileString, strconv.Itoa(rand.Intn(10000))+path.Ext(dir[i].Name())))
if err != nil {
log.Printf("第 %d 个 出错 err:%s", index, err.Error())
continue
}
}
}
log.Println("所有文件改名完成")
break
}
}
func main() {
rename()
}
2文件路径需要为绝对路径,改名后的文件为数字前缀,随机生成,使用前最好先备份数据再进行修改,避免数据丢失
3 运行
go run main.go