需求: 开发了一个module包A,里面有个文本文件 A有个初始化方法会读取这个文本文件,我在项目B里调用A的初始化方法,如果项目B里 没有同名的文本文件就会报错。 请问怎么才能让B项目中引用的A包读取A包自己的文件?
有疑问加站长微信联系(非本文作者)

需求: 开发了一个module包A,里面有个文本文件 A有个初始化方法会读取这个文本文件,我在项目B里调用A的初始化方法,如果项目B里 没有同名的文本文件就会报错。 请问怎么才能让B项目中引用的A包读取A包自己的文件?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
看看go 1.16 新加的fs / go:embed能不能解决吧。
这个好像可以,但是我们项目还没用1.16
把代码贴出来看看A初始化时是怎么读取文件的?现在没有嵌入的事把?
有的。
他的问题是这样的
他引了个a
a除了代码,还有资源(txt)文件
直接打包的话,资源是没法打到程序里面去的。
根据传入的一个txt文件路径加载到map中,在项目B中引入A包,只有B中有这个txt文件才能正常加载,否则就报错了,文件不存在
A包里还是有txt文件的,但是项目B引用不到这个文件
也不是很明白你表达的意思,
怎么才能让B项目中引用的A包读取A包自己的文件?
这句话还是没读懂,程序在运行时没有所谓的 module A module B概念, 倒是有共享变量 私有变量低版本可以用"github.com/gobuffalo/packr"打包静态资源
B模块下调用
不知道你知不知道java的jar包,相当于A包里有一个文件,B项目里引用A,但是A自己读取不了自己包里的文件
目前也是类似这样生成一个.go文件,通过读取里面的字符串的方式
你现在这只是路径的问题,用绝对路径就绝对没问题了。
@lysShub 我查了很多,没有找到获取这个路径的方法,如果您知道,请指教;