import (
"errors"
// "fmt"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
) func GetCurrentPath() (string, error) {
file, err := exec.LookPath(os.Args[0])
if err != nil {
return "", err
}
path, err := filepath.Abs(file)
if err != nil {
return "", err
}
//fmt.Println("path111:", path)
if runtime.GOOS == "windows" {
path = strings.Replace(path, "\\", "/", -1)
}
//fmt.Println("path222:", path)
i := strings.LastIndex(path, "/")
if i < 0 {
return "", errors.New(`Can't find "/" or "\".`)
}
//fmt.Println("path333:", path)
return string(path[0 : i+1]), nil
}

  

golang 获取当前可执行程序的当前路径的更多相关文章

  1. golang获取程序运行路径

    golang获取程序运行路径: /* 获取程序运行路径 */ func getCurrentDirectory() string { dir, err := filepath.Abs(filepath ...

  2. Winform获取应用程序的当前路径的方法集合(转)

    Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Loc ...

  3. GoLang获取struct的tag

    GoLang获取struct的tag内容:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( &q ...

  4. 获取Windows服务下当前路径的方法

    获取Windows服务下当前路径的方法 获取当前运行程序路径 包含exe Assembly.GetExecutingAssembly().Location; D:\xxxxxx\bin\Debug\x ...

  5. Golang获取CPU、内存、硬盘使用率

    Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent ...

  6. 如何用golang获取linux上文件的访问/创建/修改时间

    在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的 ...

  7. Golang获得执行文件的当前路径

    运行环境:golang1.9.2+win7x64golang1.9.2+centos6.5×64 /*获取当前文件执行的路径*/ func GetCurPath() string { file, _ ...

  8. golang获取packed struct的大小

    网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd ...

  9. golang获取变量数据类型

    如果某个函数的入参是interface{},有下面几种方式可以获取入参的方法: 1 fmt: import "fmt" func main() { v := "hello ...

随机推荐

  1. jsonp的原理,应用场景,优缺点

    在开发测试中,难免会在不同域下进行跨域操作,出于安全性考虑,浏览器中的同源策略阻止从一个域上加载的脚本获取或者操作 另一个域下的文档属性,这时需要进行跨域的方式进行解决,如:使用jsonp ,ifra ...

  2. LeetCode 2. Add Two Numbers (两数相加)

    题目标签:Linked List, Math 题目给了我们两个 Linked List, 各代表一个数字,不过顺序的反的.让我们把两个数字相加. 和普通的相加其实差不多,只不过变成了 Linked L ...

  3. 如何把本地文件上传github

    1.$ git config --global user.name "xxx" 2.$ git config --global user.email xxx@qq.com 3.进入 ...

  4. 大道浮屠诀---NBU报错代码之status2

    在一次windows2008R2系统上部署7.7.3备份过程中遇到了此报错 当备份catalog时,会出现status 2报错 经过一系列排查后,得出如下解决方法 1.任务进程中有大量的nbtelem ...

  5. javascript面向对象编程笔记(函数)

    第三章 函数 3.1 什么是函数 一般来说,函数声明通常由以下几部分组成: function子句 函数名称 函数所需参数 函数体 return子句.如果某个函数没有显示的返回值,默认它的返回值为und ...

  6. Guarded Suspention 要等到我准备好

    线程在运行过程中需要停下来等待,然后再继续执行. 范例程序,一个线程(ClientThread)对另外一个线程(ServerThread)传递请求,实现一个模拟消息通道的功能. public clas ...

  7. java 堆排,优先级队列,归并排序

    堆排 堆排是基于二叉树而得来的 例如:对一个数组 可以转为二叉树:       二叉树特性父节点为 i ,  左叶子节点为2i+1:右叶子节点为2i+2; 步骤分解: 1. 先从第一个非叶子节点(即下 ...

  8. scala中Array简单实用

    /** * 在scala中数组的使用 * 和java很类似,初始化后,长度就固定了,而且元素全部根据其类型初始化 * */ object arrayUse { def main(args: Array ...

  9. 解决k8s gcr.io被墙下载不了镜像的问题

    gcr.io镜像 根据开源项目: https://github.com/anjia0532/gcr.io_mirror 作者将gcr.io相关镜像pull下来,然后push到docker官方仓库htt ...

  10. 修改docker+jenkins挂载目录

    1.停止docker [root@jenkins data]# systemctl stop docker 2.创建目录,拷贝数据 [root@jenkins data]# mkdir -p /new ...