Go語言程式獲取當前工作目錄


Go 語言擁有大量的內建包來處理目錄。應用程式執行所在的目錄稱為當前工作目錄。我們可以使用 Go 語言的 OS 包和 path/filepath 包來獲取當前工作目錄。在 OS 包中,我們可以使用 os.Getwd() 函式獲取當前工作目錄。而在 path/filepath 包中,我們可以使用 filepath.Abs 和 filepath.Dir 來獲取當前工作目錄的檔案路徑。

方法一:使用 os.Getwd() 函式

此方法使用 os 包中的 os.Getwd 函式來獲取當前工作目錄。如果出現問題,錯誤訊息將列印到標準輸出。否則,標準輸出將列印當前工作目錄。請檢視程式碼和演算法以瞭解其工作原理。

語法

os.Getwd()

在 Go 程式語言中,可以使用 os.Getwd 函式獲取程序的當前工作目錄。該函式返回一個字串,表示當前工作目錄的絕對路徑。

演算法

  • 步驟 1 − 建立一個 main 包,並在程式中宣告 fmt(格式化包)和 os 包,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 在此步驟中,使用 os.Getwd() 函式獲取當前工作目錄。

  • 步驟 3 − 如果 err != nil,則表示在獲取當前工作目錄時發生錯誤。

  • 步驟 4 − 如果沒有發生錯誤,則當前工作目錄將列印到控制檯。

  • 步驟 5 − 使用 fmt.Println() 函式在控制檯上執行列印語句,其中 ln 表示換行。

示例

在此示例中,我們將使用 os 包的 os.Getwd 函式來執行程式。

package main
import (
   "fmt"
   "os"    //import fmt and os package
)

func main() {
   directory, err := os.Getwd()    //get the current directory using the built-in function
   if err != nil {
      fmt.Println(err) //print the error if obtained
   }
   fmt.Println("Current working directory:", directory) //print the required directory
}

輸出

Current working directory: /Users/username/go/src/example

方法二:使用 path/filepath 包

在此示例中,filepath.Abs 和 filepath.Dir 方法用於查詢當前正在執行的可執行檔案所在的目錄的絕對路徑。這些函式可以使用 os.Args[0] 值(表示當前正在執行的可執行檔案的名稱)來確定當前工作目錄。

語法

filepath.Abs

在 Go 中,filepath.Abs 函式返回給定檔案路徑的絕對錶示。它接受一個引數,一個表示檔案路徑的字串,並返回相對於當前工作目錄解析的路徑的絕對錶示。

filepath.dir

Go 中的 filepath.Dir 方法返回檔案路徑的目錄元件。它只需要一個引數,一個表示檔案路徑的字串,它輸出檔案路徑的領先目錄元件。

演算法

  • 步驟 1 − 建立一個 main 包,並在程式中宣告 fmt(格式化包)和 os 包,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 使用 filepath.Dir 函式作為輸入呼叫 filepath.Abs 函式,並將結果賦給 directory 變數。

  • 步驟 3 − 如果沒有錯誤,則當前工作目錄將列印到控制檯。

  • 步驟 4 − 如果發現錯誤,則將使用 log.Fatal 記錄到控制檯。

示例

在此示例中,我們將使用 path/filepath 包來在 Go 語言中獲取當前工作目錄。

package main
import (
   "log"
   "os"
   "path/filepath"
)

func main() {
   directory, err := filepath.Abs(filepath.Dir(os.Args[0]))  //get the current working directory
   if err != nil {
      log.Fatal(err)   //print the error if obtained
   }
   log.Println("Current working directory:", directory) //print the current working directory
}

輸出

Current working directory: /Users/username/go/src/example

結論

我們使用兩個示例執行了獲取當前工作目錄的程式。在第一個示例中,我們使用了 os.Getwd() 函式,在第二個示例中,我們使用了 path/filepath 包來執行程式。

更新於:2023年2月22日

6K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告