113 lines
3.6 KiB
Go
113 lines
3.6 KiB
Go
package util
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gabriel-vasile/mimetype"
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// CreateDir 创建目录(含递归创建父目录)
|
|
func CreateDir(dirPath string) bool {
|
|
err := os.MkdirAll(dirPath, 0755)
|
|
return err == nil
|
|
}
|
|
|
|
// GetFileDirectory 获取文件所在文件夹
|
|
func GetFileDirectory(filePath string) string {
|
|
directoryPath, _ := filepath.Split(filePath)
|
|
return directoryPath
|
|
}
|
|
|
|
// ReadFileMimeInfo 获取文件mime信息,失败时返回nil
|
|
func ReadFileMimeInfo(filepath string) *mimetype.MIME {
|
|
mt, err := mimetype.DetectFile(filepath)
|
|
if err != nil {
|
|
fmt.Printf("=== 读取Mime信息失败: %s, 错误: %v\n", filepath, err)
|
|
return nil
|
|
}
|
|
return mt
|
|
}
|
|
|
|
// 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)
|
|
}
|
|
|
|
//// 移动文件到根目录
|
|
//func renameFile(rootDir string, modelType string, videoList []string, pathSeparator string) {
|
|
// total := len(videoList)
|
|
// var count = 0
|
|
// bar := goPrint.NewBar(100)
|
|
// bar.SetNotice("=== 重命名文件:")
|
|
// bar.SetGraph(">")
|
|
// for _, videoFilePath := range videoList {
|
|
// wh := videoPath2WidthHeightTagMap[videoFilePath]
|
|
// fileName := vars.GlobalFilePath2FileNameMap[videoFilePath]
|
|
// if strings.Contains(fileName, videoTag) { // 处理过了
|
|
// fileNames := strings.Split(fileName, videoTag)
|
|
// if len(fileNames) == 2 {
|
|
// fileName = fileNames[1]
|
|
// targetFilePath := rootDir + pathSeparator + "[" + videoPath2DurationMap[videoFilePath] + "]" + modelType + wh + videoTag + fileName
|
|
// err := os.Rename(videoFilePath, targetFilePath)
|
|
// if err != nil {
|
|
// fmt.Printf("=== 重命名异常: %s \n", videoFilePath)
|
|
// }
|
|
// }
|
|
// } else {
|
|
// targetFilePath := rootDir + pathSeparator + "[" + videoPath2DurationMap[videoFilePath] + "]" + modelType + wh + videoTag + " - " + fileName
|
|
// err := os.Rename(videoFilePath, targetFilePath)
|
|
// if err != nil {
|
|
// fmt.Printf("=== 重命名异常: %s \n", videoFilePath)
|
|
// }
|
|
// }
|
|
// count = count + 1
|
|
// bar.PrintBar(util.CalcPercentage(count, total))
|
|
// }
|
|
// bar.PrintEnd("=== Finish")
|
|
//}
|
|
//
|
|
//// 移动文件到原目录
|
|
//func renameFileV2(modelType string, videoList []string) {
|
|
// total := len(videoList)
|
|
// var count = 0
|
|
// bar := goPrint.NewBar(100)
|
|
// bar.SetNotice("=== 重命名文件:")
|
|
// bar.SetGraph(">")
|
|
// for _, videoFilePath := range videoList {
|
|
// wh := videoPath2WidthHeightTagMap[videoFilePath]
|
|
// fileName := vars.GlobalFilePath2FileNameMap[videoFilePath]
|
|
// filePath := util.GetFileDirectory(videoFilePath)
|
|
// if strings.Contains(fileName, videoTag) { // 处理过了
|
|
// fileNames := strings.Split(fileName, videoTag)
|
|
// if len(fileNames) == 2 {
|
|
// fileName = fileNames[1]
|
|
// targetFilePath := filePath + "[" + videoPath2DurationMap[videoFilePath] + "]" + modelType + wh + videoTag + fileName
|
|
// err := os.Rename(videoFilePath, targetFilePath)
|
|
// if err != nil {
|
|
// fmt.Printf("=== 重命名异常: %s \n", videoFilePath)
|
|
// }
|
|
// }
|
|
// } else {
|
|
// targetFilePath := filePath + "[" + videoPath2DurationMap[videoFilePath] + "]" + modelType + wh + videoTag + " - " + fileName
|
|
// err := os.Rename(videoFilePath, targetFilePath)
|
|
// if err != nil {
|
|
// fmt.Printf("=== 重命名异常: %s \n", videoFilePath)
|
|
// }
|
|
// }
|
|
// count = count + 1
|
|
// bar.PrintBar(util.CalcPercentage(count, total))
|
|
// }
|
|
// bar.PrintEnd("=== Finish")
|
|
//}
|