import ( "errors" // "fmt" "os" "os/exec" "path/filepath" "runtime" "strings" ) func GetCurrentPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return &qu…
golang获取程序运行路径: /* 获取程序运行路径 */ func getCurrentDirectory() string { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { beego.Debug(err) } return strings.Replace(dir, "\\", "/", -1) }…
Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取新的Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名). string str = System.Diagnostics.Process.Get…
GoLang获取struct的tag内容:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( "fmt" "reflect" // 这里引入reflect模块 ) type User struct { Name string "user name" //这引号里面的就是tag Passwd string "user passsword&…
获取Windows服务下当前路径的方法 获取当前运行程序路径 包含exe Assembly.GetExecutingAssembly().Location; D:\xxxxxx\bin\Debug\xx.exe 获取当前运行程序路径 包含exe System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; D:\xxxxxx\bin\Debug\xx.exe 获取该进程从中启动的目录 System.Environment.…
Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent, _:= cpu.Percent(time.Second, false) return percent[0] } func GetMemPercent()float64 { memInfo, _ := mem.VirtualMemory() return memInfo.UsedPercent }…
在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的原型: func Stat(name string) (FileInfo, error) Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError. 返…
运行环境:golang1.9.2+win7x64golang1.9.2+centos6.5×64 /*获取当前文件执行的路径*/ func GetCurPath() string { file, _ := exec.LookPath(os.Args[]) //得到全路径,比如在windows下E:\\golang\\test\\a.exe path, _ := filepath.Abs(file) rst := filepath.Dir(path) return rst }…
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd }; 为了保证单字节对齐,可以加上编译选项 #pragma pack(1) 可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下 package main import ( "encoding/binary" "fmt" ) type TestSt…
如果某个函数的入参是interface{},有下面几种方式可以获取入参的方法: 1 fmt: import "fmt" func main() { v := "hello world" fmt.Println(typeof(v)) } func typeof(v interface{}) string { return fmt.Sprintf("%T", v) } 2 反射: import ( "reflect" "…