当前位置: 首页 > news >正文

Go 获取当前可执行文件的所在目录

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

代码如下:

import (
	"errors"
	"os"
	"os/exec"
	"path/filepath"
	"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
	}
	i := strings.LastIndex(path, "/")
	if i < 0 {
		i = strings.LastIndex(path, "\\")
	}
	if i < 0 {
		return "", errors.New(`error: Can't find "/" or "\".`)
	}
	return string(path[0 : i+1]), nil
}

结果:

对于非 Windows 系统,以 / 作路径分隔符,对于 Windows 系统,以 \ 作路径分隔符。

转载于:https://my.oschina.net/jthmath/blog/837423

相关文章:

  • 认识clientWidth/offsetWidth/scrollWidth
  • angularjs ng-grid 表格使用
  • shllter自动和手动实例
  • easyui datagrid 列的内容超出所定义的列宽时,自动换行
  • 性能优化之快速响应的用户界面
  • 第二十一课、Qt中的标准对话框(下)------------------狄泰软件学院
  • 六种微服务架构的设计模式
  • 记录和保存日常文件的好处_无需整理
  • webpack 与 热编译webpack-dev-server
  • HDU1878 欧拉回路
  • 【整理】微信小程序开发须知
  • Unity Remote 5 使用
  • puppet自动化技术基础分析及实例部署详解
  • DSOframer的简单介绍和资源整理
  • swift开发多线程篇 - 多线程基础
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【node学习】协程
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【刷算法】从上往下打印二叉树
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • emacs初体验
  • Meteor的表单提交:Form
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 关于Java中分层中遇到的一些问题
  • 那些被忽略的 JavaScript 数组方法细节
  • 排序算法学习笔记
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 我是如何设计 Upload 上传组件的
  • 小而合理的前端理论:rscss和rsjs
  • 用Canvas画一棵二叉树
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Semaphore
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​插件化DPI在商用WIFI中的价值
  • ​批处理文件中的errorlevel用法
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (4)(4.6) Triducer
  • (C++)八皇后问题
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (function(){})()的分步解析
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (SpringBoot)第七章:SpringBoot日志文件
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (力扣)1314.矩阵区域和
  • (三十五)大数据实战——Superset可视化平台搭建
  • (算法)Travel Information Center
  • (一)Thymeleaf用法——Thymeleaf简介
  • ../depcomp: line 571: exec: g++: not found
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .Net中ListT 泛型转成DataTable、DataSet
  • @Transactional 详解