文档章节

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

风华神使
 风华神使
发布于 2017/02/13 11:08
字数 129
阅读 3.4K
收藏 0
Go

精选30+云产品,助力企业轻松上云!>>>

代码如下:

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 系统,以 \ 作路径分隔符。

风华神使
粉丝 28
博文 29
码字总数 20405
作品 0
和平
其他
私信 提问
加载中
请先登录后再评论。
C#中如何获取当前路径的几种方法

String apppath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; //获取整个文件路径名 apppath = apppath.Substring(0, apppath.LastIndexOf(@"")); //去掉/后面......

KelvinQ
2014/04/08
2
0
C#获取程序当前路径的方法

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。 stri...

技术小美
2017/11/12
0
0
C#当前运行所在目录集合

//获取当前进程的完整路径,包含文件名(进程名)。 string str = this.GetType().Assembly.Location; result: X:xxxxxxxxx.exe (.exe文件所在的目录+.exe文件名) //获取新的 Process 组件并将...

osc_bq1qsg6s
2019/05/21
0
0
C# 获取文件名及扩展名【转】

https://www.cnblogs.com/libushuang/p/5794976.html C# 获取文件名及扩展名 string aFirstName = aFile.Substring(aFile.LastIndexOf("") + 1, (aFile.LastIndexOf(".") - aFile.LastIndex......

osc_zy2cp8tz
2019/02/25
8
0
C# 获取文件路径

转自:壊壊—娚孩 反恐金鹰 winform获取文件路径 string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory...

听风.
2012/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C# 数组实现

实现数组的插入、删除、查询操作 using System;namespace algo05_array{ public sealed class Array<T> where T : IComparable<T> { private T[] _data; ......

江湖令
14分钟前
10
0
base64的go语言实现

package main; import ( "encoding/base64" "fmt" "strings" ) func baseStdEncode(srcBtye []byte) string { encoding := base64.StdEncoding.EncodeToString(srcBtye) return encoding } f......

osc_9bmcw8wc
15分钟前
5
0
Mybatis批量删除功能实现

我是阿福,公众号「阿福聊编程」作者,一个在后端技术路上摸盘滚打的程序员,在进阶的路上,共勉!文章已收录在 JavaSharing 中,包含Java技术文章,面试指南,资源分享。 前台实现 表单实现...

阿福聊编程
16分钟前
4
0
YOLOv5是真的吗?并不比YOLOv4强,不配这个名字 - 知乎

YOLOv4 发布不到 2 个月,一个名叫 YOLOv5 的目标检测框架横空出世,但它真的够格继承 YOLO 之名并沿用社区公认的版本号吗?工程师 Ritesh Kanjee 近日在 Medium 上通过事实与社区观点对此给...

osc_b2jll5m6
16分钟前
5
0
新浪私有化:门户终结、另寻新生

配图来自Canva 在纳斯达克上市了二十年之后,新浪收到了私有化要约。 近日,新浪发布公告称,收到由New Wave发出的非约束性私有化要约。该要约提议以每股41美元现金的价格收购New Wave尚不持...

osc_kdarxvx0
17分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部