Golang程序 获取当前工作目录

Golang程序 获取当前工作目录

Golang有大量的内部包来处理目录问题。应用程序正在运行的目录被称为当前工作目录。 这里我们可以使用操作系统包以及Golang的path/filepath包来获取当前工作目录。 在操作系统包中,我们可以使用os.Getwd()函数来获得当前工作目录。而在path/filepath包中,我们可以使用filepath.Abs和filepath.dir来获取当前工作目录的文件路径。

方法1:使用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

方法2:使用path/filepath包

在这个插图中,filepath.Abs和filepath.Dir方法被用来查找活动可执行文件所在目录的绝对路径。这些例程与os.Args[0]值(表示当前运行的可执行文件的名称)一起,可以用来确定当前工作目录。

语法

filepath.Abs

在Go中,filepath.Abs函数返回一个给定文件路径的绝对值。它接受一个参数,即代表文件路径的字符串,并返回该路径的绝对值,相对于当前工作目录而言。

filepath.dir

Go中的filepath.Dir方法返回一个文件路径的目录部分。它只需要一个输入,一个代表文件路径的字符串,然后输出文件路径的主导目录部分。

算法

  • 第1步 – 创建一个包main并声明fmt(format package),os包在程序中,main产生可执行代码,fmt帮助格式化输入和输出。

  • 第2步 – 用filepath.Dir函数调用filepath.Abs函数,作为函数中的一个输入被分配到目录。

  • 第3步 – 如果没有错误伴随,当前工作目录将被打印在控制台。

  • 第4步 – 如果发现错误,将使用log.Fatal在控制台中记录。

例子

在这个例子中,我们将使用path/filepath包来获取Golang的当前工作目录。

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包来执行该程序。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程