1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package main
- import (
- "fmt"
- "io"
- "net/http"
- "os"
- "errors"
- "os/exec"
- "path/filepath"
- "runtime"
- "strings"
- "time"
- )
- func main(){
- res, err := http.Get("https://kptyun.cn/file/PrconsoleV2.4.exe")
- if err != nil {
- panic(err)
- }
- if res.StatusCode != 200{
- fmt.Println("更新文件不存在或网络错误")
- time.Sleep(3*time.Second)
- return
- }
- fmt.Println("更新中....")
- res.Header.Get("Content-Disposition")
- CurrentPath,err := GetCurrentPath()
- if err != nil {
- fmt.Println(err)
- return
- }
- err =os.Rename(CurrentPath+"PrconsoleV2.4.exe",CurrentPath+"PrconsoleV2.4.exe"+time.Now().Format("20060102150405"))
- f, err := os.Create(CurrentPath+"PrconsoleV2.4.exe")
- if err != nil {
- fmt.Println(err)
- return
- }
- _,err =io.Copy(f, res.Body)
- if err!= nil{
- fmt.Println(err)
- return
- }
- fmt.Println("更新成功")
- time.Sleep(3*time.Second)
- }
- func GetCurrentPath() (string, error) {
- file, err := exec.LookPath(os.Args[0])
- if err != nil {
- return "", err
- }
- path, err := filepath.Abs(file)
- if err != nil {
- return "", err
- }
- //fmt.Println("path111:", path)
- if runtime.GOOS == "windows" {
- path = strings.Replace(path, "\\", "/", -1)
- }
- //fmt.Println("path222:", path)
- i := strings.LastIndex(path, "/")
- if i < 0 {
- return "", errors.New(`Can't find "/" or "\".`)
- }
- //fmt.Println("path333:", path)
- return string(path[0 : i+1]), nil
- }
|