73 lines
1.6 KiB
Go
73 lines
1.6 KiB
Go
package util
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/gabriel-vasile/mimetype"
|
||
"io/ioutil"
|
||
"log"
|
||
"os"
|
||
"path/filepath"
|
||
"strconv"
|
||
"time"
|
||
)
|
||
|
||
// CheckFileIsExist 判断文件是否存在,存在返回 true,不存在返回false
|
||
func CheckFileIsExist(filename string) bool {
|
||
var exist = true
|
||
if _, err := os.Stat(filename); os.IsNotExist(err) {
|
||
exist = false
|
||
}
|
||
return exist
|
||
}
|
||
|
||
// WriteByteArraysToFile 写字节数组到文件
|
||
func WriteByteArraysToFile(content []byte, filename string) error {
|
||
return ioutil.WriteFile(filename, content, 0777)
|
||
}
|
||
|
||
// String2int 字符串转int
|
||
func String2int(str string) int {
|
||
intValue, err := strconv.Atoi(str)
|
||
if err != nil {
|
||
return 0
|
||
}
|
||
return intValue
|
||
}
|
||
|
||
// CreateDir 创建目录
|
||
func CreateDir(dirPath string) bool {
|
||
err := os.Mkdir(dirPath, 0755)
|
||
return err == nil
|
||
}
|
||
|
||
// ReadFileMimeInfo 获取文件mime信息
|
||
func ReadFileMimeInfo(filepath string) *mimetype.MIME {
|
||
mt, err := mimetype.DetectFile(filepath)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
return mt
|
||
}
|
||
|
||
// SecondsToHms 将秒数转换为小时、分钟、秒的格式
|
||
func SecondsToHms(seconds int) string {
|
||
t := time.Duration(seconds) * time.Second
|
||
h := t / time.Hour
|
||
t -= h * time.Hour
|
||
m := t / time.Minute
|
||
t -= m * time.Minute
|
||
s := t / time.Second
|
||
return fmt.Sprintf("%02d-%02d-%02d", h, m, s)
|
||
}
|
||
|
||
// CalcPercentage 计算percentage相对于total的百分比
|
||
func CalcPercentage(percentage int, total int) int {
|
||
return int(float64(percentage) / float64(total) * 100)
|
||
}
|
||
|
||
// 获取文件所在文件夹
|
||
func GetFileDirectory(filePath string) string {
|
||
directoryPath, _ := filepath.Split(filePath)
|
||
return directoryPath
|
||
}
|