package core import ( "io/ioutil" "log" "os" "path/filepath" "sort" ) // @title FileExists // @description 检测文件是否存在 // @param filePath 文件路径 // @return bool 是否存在,error 是否成功 func FileExists(filePath string) (bool, error) { _, err := os.Stat(filePath) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } // GetFileFromFolder 获取子文件夹里的文件名列表 func GetFileFromFolder(folder string) ([]string, error) { filePaths := []string{} files, err := ioutil.ReadDir(folder) if err != nil { log.Printf("filepath.Glob error : %v\n", err) return filePaths, err } for _, f := range files { filePaths = append(filePaths, filepath.Join(folder, f.Name())) } return filePaths, nil } func RemoveFiles(folder, suffix string) error { filePaths, err := GetFileFromFolder(folder) if err != nil { log.Printf("GetFileFromFolder error : %v\n", err) return err } for _, filePath := range filePaths { if filePath[len(filePath)-len(suffix):] == suffix { err = os.Remove(filePath) if err != nil { log.Printf("Remove error : %v\n", err) } } } return nil } //2021-11-03 func GetSubTitleByModTime(folder string) (string, error) { filePaths := []string{} files, err := ioutil.ReadDir(folder) if err != nil { log.Printf("filepath.Glob error : %v\n", err) return filePaths[0], err } //按mod时间排序 sort.Slice(files, func(i, j int) bool { flag := false if files[i].ModTime().After(files[j].ModTime()) { flag = true } else if files[i].ModTime().Equal(files[j].ModTime()) { if files[i].Name() < files[j].Name() { flag = true } } return flag }) for _, f := range files { filePaths = append(filePaths, filepath.Join(folder, f.Name())) } return filePaths[0], err }