golang 获取三种不同的路径方法(执行路径,项目路径,文件路径)

func checkErr(err error) {
    if err != nil {
        panic(err)
    }
}

//获取当前的执行路径
//C:\Users\Vic\AppData\Local\Temp\
func getCurrentPath() string {
    s, err := exec.LookPath(os.Args[0])
    checkErr(err)
    i := strings.LastIndex(s, "\\")
    path := string(s[0 : i+1])
    return path
}

//获取当前文件的详细路径
//D:/Go/workspace/port/network_learn/server/server.go
func CurrentFile() string {
    _, file, _, ok := runtime.Caller(1)
    if !ok {
        panic(errors.New("Can not get current file info"))
    }
    return file
}


func main()  {
    //D:\Go\workspace\port  当前项目的路径
    pa,_:=os.Getwd()

    path:=getCurrentPath()

    filePath:=CurrentFile()

    fmt.Println(pa)
    fmt.Println(path)
    fmt.Println(filePath)
}

你可能感兴趣的:(golang)