今天早上想把文件传到网盘里,而且还想修改把文件名改成文件名的md5,一个一个修改比较麻烦。
最近一直在研究Go语言,该语言比较简洁,可以编译成可执行程序,所以就用Go语言写了一个小工具叫md5ren。
实现的功能是在要修改的文件夹中执行命令md5ren,达到的目标是将该文件夹下所有的文件以及文件夹都修改成原始名称的md5值,如果是文件,则保留原文件的后缀。
使用到的Go语言的功能有:
- 列出一个文件夹下的所有文件
- 判断文件类型,是文件还是文件夹
- 写文件
- 生成字符串的MD5值
列出一个文件夹下的所有文件
files, err := ioutil.ReadDir(dir)
判断文件类型
通过ioutil.ReadDir返回的结果为FileInfo类型的数据,FileInfo有IsDir方法,可以判断是否文件夹。
写文件
写文件可以使用ioutil.WriteFile来实现,代码如下:
ioutil.WriteFile(renLogFileName, []byte(renameLog), 0666)
计算字符串的MD5值
1 func GetMD5Hash(text string) string { 2 hasher := md5.New() 3 hasher.Write([]byte(text)) 4 return hex.EncodeToString(hasher.Sum(nil)) 5 }
完整代码在github中.
有疑问加站长微信联系(非本文作者)