Skip to content

Instantly share code, notes, and snippets.

@arxdsilva
Last active February 12, 2024 13:30
Show Gist options
  • Save arxdsilva/4f73d6b89c9eac93d4ac887521121120 to your computer and use it in GitHub Desktop.
Save arxdsilva/4f73d6b89c9eac93d4ac887521121120 to your computer and use it in GitHub Desktop.
How to get the current working directory in golang
package main
// More info on Getwd()
// https://golang.org/src/os/getwd.go
//
import(
"os"
"fmt"
"log"
)
func main() {
dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
fmt.Println(dir)
}
@jasontconnell
Copy link

If you would like to find the current directory name - then you can extend it further.

// More info on Getwd()
// https://golang.org/src/os/getwd.go
// 
import(
  "os" 
  "fmt"
  "log"
)

func main() {
  dir, err := os.Getwd()
	if err != nil {
		log.Fatal(err)
	}
  fmt.Println(dir)
  var ss [] string
  if runtime.GOOS == "windows" {
		ss = strings.Split(dir, "\\")
	} else {
		ss = strings.Split(dir, "/")
	}

	currentDirName:= ss[len(ss)-1]

	fmt.Println("Current Directory Name: ", currentDirName)
}

path/filepath does this for you, hopefully no one has this code in their programs

https://golang.org/pkg/path/filepath/

@vinchauhan
Copy link

@jasontconnell - you are right.

@wyfSunflower
Copy link

Could you please tell me how to get directory of specified windows process ?not only current process but also some else.For example cmd.exe

@laredoer
Copy link

牛逼

@limjinyung
Copy link

Thanks 👍

@ganesh-getweave
Copy link

@m-a-rahal-os
Copy link

THANK YOU !
I've wasted so much time trying to figure out how to find directory of the project (to locate config file correctly), this should be the first answer on stack overflow or something ... thanks again for sharing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment