|
|
|
package util
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"path"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
// DotPathToStandardPath 将","分割的路径转换为标准路径
|
|
|
|
func DotPathToStandardPath(path string) string {
|
|
|
|
return "/" + strings.Replace(path, ",", "/", -1)
|
|
|
|
}
|
|
|
|
|
|
|
|
// FillSlash 给路径补全`/`
|
|
|
|
func FillSlash(path string) string {
|
|
|
|
if path == "/" {
|
|
|
|
return path
|
|
|
|
}
|
|
|
|
return path + "/"
|
|
|
|
}
|
|
|
|
|
|
|
|
// RemoveSlash 移除路径最后的`/`
|
|
|
|
func RemoveSlash(path string) string {
|
|
|
|
if len(path) > 1 {
|
|
|
|
return strings.TrimSuffix(path, "/")
|
|
|
|
}
|
|
|
|
return path
|
|
|
|
}
|
|
|
|
|
|
|
|
// SplitPath 分割路径为列表
|
|
|
|
func SplitPath(path string) []string {
|
|
|
|
if len(path) == 0 || path[0] != '/' {
|
|
|
|
return []string{}
|
|
|
|
}
|
|
|
|
|
|
|
|
if path == "/" {
|
|
|
|
return []string{"/"}
|
|
|
|
}
|
|
|
|
|
|
|
|
pathSplit := strings.Split(path, "/")
|
|
|
|
pathSplit[0] = "/"
|
|
|
|
return pathSplit
|
|
|
|
}
|
|
|
|
|
|
|
|
// FormSlash 将path中的反斜杠'\'替换为'/'
|
|
|
|
func FormSlash(old string) string {
|
|
|
|
return path.Clean(strings.ReplaceAll(old, "\\", "/"))
|
|
|
|
}
|
|
|
|
|
|
|
|
// RelativePath 获取相对可执行文件的路径
|
|
|
|
func RelativePath(name string) string {
|
|
|
|
if filepath.IsAbs(name) {
|
|
|
|
return name
|
|
|
|
}
|
|
|
|
e, _ := os.Executable()
|
|
|
|
return filepath.Join(filepath.Dir(e), name)
|
|
|
|
}
|