diff --git a/utils/file.go b/utils/file.go index fe52d03..5dbed3c 100644 --- a/utils/file.go +++ b/utils/file.go @@ -5,6 +5,8 @@ import ( "os/exec" "path/filepath" "strings" + + "errors" ) func GetCurrentDir() string { @@ -95,3 +97,29 @@ func IsExists(path string) bool { } return true } + + +//windows环境下获取绝对路径 +func GetCurrentPath(dir string) (string, error) { + file, err := exec.LookPath(os.Args[0]) + if err != nil { + return "", err + } + path, err := filepath.Abs(file) + if err != nil { + return "", err + } + i := strings.LastIndex(path, "/") + if i < 0 { + i = strings.LastIndex(path, "\\") + } + if i < 0 { + return "", errors.New(`error: Can't find "/" or "\".`) + } + pathdir := path[0 : i+1] + if len(dir) > 0 { + dir = strings.Replace(dir, "/", "\\", -1) + return filepath.Join(pathdir, dir), nil + } + return path[0 : i+1], nil +} \ No newline at end of file