分享
  1. 首页
  2. 主题
  3. Go基础

os.Args[0] 的获取的值的问题

jerrychen · · 11385 次点击 · 开始浏览 置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

默认情况下 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 次点击
5 回复 | 直到 2015年05月12日 05:46:22
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)