Golang如何获取文件所在的包的目录,而不是当前的工作目录
我正在创建一个包来对服务进行API调用.
我有一个测试包,我只是用来测试API调用并测试主包的功能,我只包括其他包. 在我正在制作的主要包装中,我有 ioutil.ReadFile(filepath.Abs??( “Filename.pub”)) 哪个好,但是当我从我的测试包中调用它时,例如 /Users/####/gocode/src/github.com/testfolder go run main.go 它告诉我 恐慌:打开/Users/####/gocode/src/github.com/testfolder/public.pub:没有这样的文件或目录 问题是,它是在testfolder中寻找public.pub而不是github.com/apipackage/. 只是为了澄清这些混乱的话: API包具有从同一目录读取的功能 但是因为我包括API包,而且当我运行main.go时,Testfolder就是CWD,而是试图从testfolder中获取它,即使main.go没有该功能并且只是包含它. 谢谢你这令人困惑的屁股问题
runtime.Caller是你想要我相信的.
这是一个演示: package main import ( "fmt" "runtime" "path" ) func main() { _,filename,_,ok := runtime.Caller(0) if !ok { panic("No caller information") } fmt.Printf("Filename : %q,Dir : %qn",path.Dir(filename)) } https://play.golang.org/p/vVa2q-Er6D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- golang中new和make区别
- perl – 在Marpa :: R2 :: Scanless中防止天真最长的令牌匹
- 如何有条件地定义一个Perl子例程?
- Part 1: 如何把Power BI 嵌入到sharepoint 网站
- 如何让delphi的滚动条更宽/更大(包括滚动条的箭头)
- delphi – 当一个类实现后代接口时,为什么它不会自动计算为
- Raudus vs ExtPascal:使用ExtJS的Delphi web开发替代方案
- Unity 基于Lua UI简单框架
- 使用Perl XML :: DOM模块的分析器错误,“对无效字符编号的引
- delphi – 是否可以在Virtual Treeview中选择多个列?