Jacky & Jason
说明
项目情况
项目框架
待解决的问题
- SDK for Golang 的使用?
- 写自己的SDK?
- OAuth2.0认证什么鬼啊?
版本 Change Log
过程中踩到的坑
movepic.go
把图片改名成时间
文件名不能包含:这个符号,否则用os.Rename改名不成功,提示错误:The filename, directory name, or volume label syntax is incorrect.。同样地,新文件名不能包含*、\、/等字符。  
正确的:  
| 12
 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
 }
 
 | 
错误的:  
| 12
 3
 
 | ……newpath := folderPath + PTHSEP + time.Now().Format("2006-01-02-15:04:05") + ".png"
 ……
 
 | 
判断文件夹中是否有图片
先用ioutil.ReadDir(imagesFolderPath)读取目录下文件,再根据拓展名判断是否是规定格式的图片,不是文件的剔除,剔除后,检查时候还存在剩余图片。  
此时应该用len()判断,而不是判断切片是否为nil。  
| 12
 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
 }
 
 |