mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.7 KiB
82 lines
1.7 KiB
package libs
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"time"
|
|
|
|
"math/rand"
|
|
)
|
|
|
|
// UUID 生成指定数量的 UUID
|
|
const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
|
|
// UUID 生成指定长度的随机字符串
|
|
func UUID(count int) string {
|
|
source := rand.NewSource(time.Now().UnixNano())
|
|
random := rand.New(source)
|
|
b := make([]byte, count)
|
|
for i := range b {
|
|
b[i] = letterBytes[random.Intn(len(letterBytes))]
|
|
}
|
|
return string(b)
|
|
}
|
|
func Md5(src string) string {
|
|
m := md5.New()
|
|
m.Write([]byte(src))
|
|
res := hex.EncodeToString(m.Sum(nil))
|
|
return res
|
|
}
|
|
|
|
func IsContain(slice []string, str string) bool {
|
|
for _, item := range slice {
|
|
if strings.EqualFold(item, str) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
func PathExists(dir string) bool {
|
|
_, err := os.Stat(dir)
|
|
if err == nil {
|
|
//log.Println("文件夹存在")
|
|
return true
|
|
} else if os.IsNotExist(err) {
|
|
//log.Println("文件夹不存在")
|
|
return false
|
|
} else if os.IsExist(err) {
|
|
//log.Println("文件夹存在")
|
|
return true
|
|
} else {
|
|
//log.Println("发生错误:", err)
|
|
return false
|
|
}
|
|
}
|
|
|
|
// DeleteFile 删除指定路径的文件
|
|
// 如果文件不存在或者是文件夹,则返回错误信息
|
|
func DeleteFile(filePath string) error {
|
|
// 检查文件信息
|
|
fileInfo, err := os.Stat(filePath)
|
|
if err != nil {
|
|
// 文件不存在
|
|
return fmt.Errorf("文件不存在: %v", err)
|
|
}
|
|
|
|
// 判断是否是文件夹
|
|
if fileInfo.IsDir() {
|
|
// 是文件夹
|
|
return fmt.Errorf("指定路径是文件夹,不能删除: %v", filePath)
|
|
}
|
|
|
|
// 删除文件
|
|
err = os.Remove(filePath)
|
|
if err != nil {
|
|
return fmt.Errorf("删除文件失败: %v", err)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|