使用的是 go mod 跨包调用文件指针出现文件路径问题
文件 Tree:
Gomod
ReadFile
script.go
script_test.go
test.txt
main.go
script.go
var File *os.File
func init(){
Read()
}
func Read(){
p,_:=os.Getwd()
fmt.Println("当前路径是:",p)
file,err:=os.Open("test.txt")
if err!=nil{
log.Fatal(err)
}
File = file
}
script_test.go
file := File
b,err:=ioutil.ReadAll(file)
if err!=nil{
panic(err)
}
defer file.Close()
fmt.Println(string(b))
结果为:
当前路径是: D:\项目文件\GoModLearn\GO 语言编程\调试程序\ReadFile
=== RUN TestRead
helloworld
--- PASS: TestRead (0.00s)
PASS
main.go
func main() {
file:=ReadFile.File
b,err:=ioutil.ReadAll(file)
if err!=nil{
panic(err)
}
defer file.Close()
fmt.Println(string(b))
}
结果为:
当前路径是: D:\项目文件\GoModLearn
2019/12/28 21:48:37 open test.txt: The system cannot find the file specified.
不同的地方调用该文件指针,init()打印的当前路径不一样,求前辈们指导一下~~~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.