Jacky & Jason
说明
项目情况
项目框架
待解决的问题
- SDK for Golang 的使用?
- 写自己的SDK?
- OAuth2.0认证什么鬼啊?
版本 Change Log
过程中踩到的坑
movepic.go
把图片改名成时间
文件名不能包含:
这个符号,否则用os.Rename
改名不成功,提示错误:The filename, directory name, or volume label syntax is incorrect.
。同样地,新文件名不能包含*
、\
、/
等字符。
正确的:
1 2 3 4 5 6 7 8 9
| func renameImage(folderPath string, imageName string){ oldpath := folderPath + PTHSEP + imageName fmt.Println("oldpath:", oldpath) newpath := folderPath + PTHSEP + time.Now().Format("2006-01-02-15-04-05") + ".png" fmt.Println("newpath:", newpath) err := os.Rename(oldpath, newpath) fmt.Println("err:", err) return }
|
错误的:
1 2 3
| …… newpath := folderPath + PTHSEP + time.Now().Format("2006-01-02-15:04:05") + ".png" ……
|
判断文件夹中是否有图片
先用ioutil.ReadDir(imagesFolderPath)
读取目录下文件,再根据拓展名判断是否是规定格式的图片,不是文件的剔除,剔除后,检查时候还存在剩余图片。
此时应该用len()
判断,而不是判断切片是否为nil
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| images, err := ioutil.ReadDir(imagesFolderPath) if err != nil { return err }
for i := 0; i < len(images); { if strings.HasSuffix(strings.ToLower(images[i].Name()), ".jpg") || strings.HasSuffix(strings.ToLower(images[i].Name()), ".png") || strings.HasSuffix(strings.ToLower(images[i].Name()), ".jpeg") { i++ } else { images = append(images[:i], images[i+1:]...) } }
if len(images) == 0 { fmt.Printf("\"%s\"文件夹中未找到 .jpg/.png/.jpeg 后缀的图片!\n", IMAGESFOLDER) err = errors.New("图片库文件夹中未发现图片!") return err }
|