golang 获取当前路径和上一级父路径(目录)
package main
import (
"fmt"
"log"
"os"
"path/filepath"
"strings"
)
func substr(s string, pos, length int) string {
runes := []rune(s)
l := pos + length
if l > len(runes) {
l = len(runes)
}
return string(runes[pos:l])
}
func getParentDirectory(dirctory string) string {
return substr(dirctory, 0, strings.LastIndex(dirctory, "/"))
}
func getCurrentDirectory() string {
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err != nil {
log.Fatal(err)
}
return strings.Replace(dir, "\\", "/", -1)
}
func main() {
var str1, str2 string
str1 = getCurrentDirectory()
str2 = getParentDirectory(str1)
fmt.Println(str2)
}
有疑问加站长微信联系(非本文作者)




一句话搞定的事情,为什么要写这么多。。。
楼上的方法类似path.Dir("c:/aa/bb/") 但是在windows下如果写成c:\aa\bb好像就有问题了,哪位大神有方案呀?
2楼 @uidson
arg = "./" 父目录
arg = "../" 父的父目录
currPath,_ := filepath.Abs(arg)