分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
默认情况下
os.Args[0]应该返回可执行文件的路径
``` go
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("test the os package")
fmt.Println("Args len", len(os.Args))
for i, arg := range os.Args {
fmt.Println("arg", i)
fmt.Println("arg", arg)
}
fileInfo, err := os.Stat("E:\\go\\bin\\studygolang.exe")
if err != nil {
fmt.Println(err)
}
Date := fileInfo.ModTime().String()
fmt.Println("Date", Date)
}
输出
[ `go run testospackage.go` | done: 547.0313ms ]
test the os package
Args len 1
arg 0
arg C:\Users\ADMINI~1\AppData\Local\Temp\go-build951095955\command-line-arguments\_obj\exe\testospackage.exe
Date 2015年05月11日 16:08:36.641569 +0800 CST
```
但是问题是我下载本站的代码,执行start.bat 后,总是提示
``` go panic: GetFileAttributesEx E:\go\bin\studygolang: The system cannot find the file specified. ```
代码定位到version.go
```go
if Date == "" {
fileInfo, err := os.Stat(os.Args[0])
if err != nil {
panic(err)
}
Date = fileInfo.ModTime().String()
}
```
从os.Arg[0] 获取的是E:\go\bin\studygolang ;而不是E:\go\bin\studygolang.exe
请问是什么原因导致的,没有后缀名了
PS:自己手动修改fileInfo, err := os.Stat(os.Args[0] +".exe"),
然后再执行install.bat ,start.bat 就没有错误,可以http://127.0.0.1:8080/了
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信11385 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传