From 8baf5e6f78948c0fa86cfd5a9944a1c0242f6ce8 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Fri, 19 Mar 2021 16:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0windows=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=B8=8B=E8=8E=B7=E5=8F=96=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95GetCurrentPath?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) 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