校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > golang 獲取當前執行程序路徑的操作

golang 獲取當前執行程序路徑的操作

熱門標簽:利用地圖標注位置 赤峰電銷 杭州人工智能電銷機器人費用 400開頭電話怎樣申請 江蘇呼叫中心外呼系統有效果嗎 貴州電話智能外呼系統 官渡電銷外呼管理系統怎么收費 谷歌美發店地圖標注 地圖區域圖標注后導出

我就廢話不多說了,大家還是直接看代碼吧~

1.獲取當前執行程序路徑

func execPath() (string, error) {
 file, err := exec.LookPath(os.Args[0])
 if err != nil {
  return "", err
 }
 re, err := filepath.Abs(file)
 if err != nil {
  logs.Error("The eacePath failed: %s\n", err.Error())
 }
 flog.Infoln("The path is ", re)
 return filepath.Abs(file)
}
func GetCurrentDirectory() string {
 dir, err := filepath.Abs(filepath.Dir(os.Args[0])) //返回絕對路徑 filepath.Dir(os.Args[0])去除最后一個元素的路徑
 if err != nil {
  log.Fatal(err)
 }
 return strings.Replace(dir, "\\", "/", -1) //將\替換成/
}

2.獲取當前執行程序目錄

func GetCurrentDirectory() string {
 //返回絕對路徑 filepath.Dir(os.Args[0])去除最后一個元素的路徑
 dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
 if err != nil {
 log.Fatal(err)
 }
 
 //將\替換成/
 return strings.Replace(dir, "\\", "/", -1) 
}

測試使用

func main() {
 dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
 if err != nil {
   log.Fatal(err)
 }
 fmt.Println(dir)
}

補充:golang下的GOPATH路徑問題

為了方便,我一般使用task來管理項目的編譯等事項,由于才入門go,所以碰到一個問題,以此篇為記。

背景

我需要開發一個組建,所以代碼結構沒有src目錄,并且項目放在GOPATH路徑的src目錄下

我在編譯二進制文件的時候使用了下面的命令

GOPATH=`pwd` GOBIN=`pwd` go install main.go

編譯報錯,提示import的類庫找不到

排錯分析

1、檢查env是否正確 命令:go env,檢查結果正常

2、檢查golang的GOPATH和GOROOT配置是否正常,檢查通過

3、分析編譯命令找到問題

問題

我在編譯的時候重新定義了GOPATH路徑。在go語言編譯的時候,它會去找GOPATH和GOROOT下面的src目錄。

現在GOROOT=~/gopath/,那么首先編譯器到GOROOT下找import的包,如果沒有找到,則到GOPATH路徑下尋找

此時GOPATH=`pwd`,也就是項目路徑,那么它會到項目路徑下的src目錄下尋找。由于我沒有src目錄,所以找不到,從而編譯報錯

解決

問題其實出在GOPATH下,由于當前項目文件已經處于GOPATH的src下,所以只需要刪除GOPATH即可。

正確編譯命令:

GOBIN=`pwd` go install main.go

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang如何交叉編譯各個平臺的二進制文件詳解
  • Golang 運算符及位運算詳解
  • golang指數運算操作
  • golang切片反序實例
  • golang 實現interface{}轉其他類型操作
  • golang 實現tcp server端和client端,并計算RTT時間操作
  • golang HTTP 服務器 處理 日志/Stream流的操作
  • 淺談golang二進制bit位的常用操作

標簽:泰安 黔西 鷹潭 武漢 宜春 河池 松原 保定

巨人網絡通訊聲明:本文標題《golang 獲取當前執行程序路徑的操作》,本文關鍵詞  golang,獲取,當前,執行,程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 獲取當前執行程序路徑的操作》相關的同類信息!
  • 本頁收集關于golang 獲取當前執行程序路徑的操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 仪征市| 会理县| 甘谷县| 卫辉市| 开封县| 长葛市| 哈密市| 嘉禾县| 泰兴市| 临泽县| 遂溪县| 奎屯市| 洪泽县| 景宁| 台北县| 诏安县| 淮安市| 平阳县| 姚安县| 大邑县| 青川县| 花莲县| 县级市| 淮北市| 屏东市| 沙洋县| 福鼎市| 江北区| 遂宁市| 资溪县| 靖西县| 叙永县| 安阳县| 新竹市| 丘北县| 偃师市| 库车县| 彰化县| 苍山县| 衡东县| 来凤县|