Go自動切換工作目錄

簡介


Go自動切換工作目錄

在 Go 程序執行的時候,有些配置是相對路徑的,需要到指定的目錄執行才能找到對應的配置文件。這時候就需要程序自動切換工作目錄。

init 函數

在 golang 中在加載包的時候會先加載 init 函數,我們可以通過這個函數來實現。


Go自動切換工作目錄


代碼

<code>package main

import (
\t"fmt"
\t"log"
\t"os"
\t"path/filepath"
)

// 自動切換工作目錄
func init() {
\tpwd, _ := os.Getwd()
\tfmt.Println("開始工作目錄", pwd)
\t// 程序所在目錄
\texecDir, err := filepath.Abs(filepath.Dir(os.Args[0]))
\tif err != nil {
\t\tlog.Fatal(err)
\t}
\tif pwd == execDir {
\t\tfmt.Println("不需要切換工作目錄")
\t\treturn
\t}
\tfmt.Println("切換工作目錄到", execDir)
\tif err := os.Chdir(execDir); err != nil {
\t\tlog.Fatal(err)
\t}
\tpwd, _ = os.Getwd()
\tfmt.Println("切換後工作目錄:", pwd)
}

func main() {
}
/<code>

總結

main 函數里面保留之前函數即可。也可以將這個 init 函數放到其他包裡面去,然後導入到 main 包。


Go自動切換工作目錄


分享到:


相關文章: