使用golang过滤文件名符号
最近客服部遇到个问题:内部跟第三方对接了邮寄文件服务,每次邮寄需要把文件上传,恰好上传文件名不支持特殊符号如“-%&”,手动改太麻烦,于是想到了用go了个小工具
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"strings"
)
func main() {
var yes int
fmt.Println("输入1,重命名当前文件夹文件,否则输入2:")
fmt.Scanln(&yes)
if yes != 1 {
return
}
//return
path := "./"
files, err := ioutil.ReadDir(path)
if err != nil {
log.Fatal(err)
}
for _, f := range files {
if f.IsDir() {
return
}
fmt.Println(f.Name())
//这里定义规则,我需要从(2020)0854-0036-1355 过滤到2020085400361355
str1 := strings.Replace(f.Name(), "-", "", -1)
str2 := strings.Replace(str1, "(", "", -1)
str3 := strings.Replace(str2, ")", "", -1)
//os.Rename(path+"\\"+f.Name(), path+"\\"+
// fmt.Sprintf(str3, index))
os.Rename(path+"\\"+f.Name(), path+"\\"+
fmt.Sprintf(str3))
}
}
用go的好处就是跨平台,直接go build xxx.go然后发给同事运行就完了!
有疑问加站长微信联系(非本文作者)