// 获取目录下创建修改的图片返回完整路径+图片名
type ImageLastName struct {
}

func (class *ImageLastName) GetName(dir string) (string, error) {
	// 图片所在的目录路径
	//dir := "./images"
	// 获取目录下所有文件
	files, err := os.ReadDir(dir)
	if err != nil {
		return "", errors.New("无法读取目录")
	}
	var imageFiles []string
	// 筛选出图片文件
	for _, file := range files {
		if !file.IsDir() && class.isImage(file.Name()) {
			imageFiles = append(imageFiles, filepath.Join(dir, file.Name()))
		}
	}

	// 按照修改时间排序
	sort.Slice(imageFiles, func(i, j int) bool {
		fi, _ := os.Stat(imageFiles[i])
		fj, _ := os.Stat(imageFiles[j])
		return fj.ModTime().Before(fi.ModTime())
	})

	// 获取最新创建的图片
	if len(imageFiles) > 0 {
		newestImage := imageFiles[0]
		return newestImage, nil
		//fmt.Println("最新创建的图片：", newestImage)
	} else {
		return "", errors.New("目录下没有图片文件")
	}
}

// 判断文件是否为图片
func (class *ImageLastName) isImage(filename string) bool {
	ext := filepath.Ext(filename)
	switch ext {
	case ".jpg", ".jpeg", ".png", ".gif":
		return true
	}
	return false
}