paths.go 748 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package utils
  2. import (
  3. "errors"
  4. "os"
  5. "os/exec"
  6. "path/filepath"
  7. "runtime"
  8. "strings"
  9. )
  10. func GetCurrentPath() (string, error) {
  11. file, err := exec.LookPath(os.Args[0])
  12. if err != nil {
  13. return "", err
  14. }
  15. path, err := filepath.Abs(file)
  16. if err != nil {
  17. return "", err
  18. }
  19. //fmt.Println("path111:", path)
  20. if runtime.GOOS == "windows" {
  21. path = strings.Replace(path, "\\", "/", -1)
  22. }
  23. //fmt.Println("path222:", path)
  24. i := strings.LastIndex(path, "/")
  25. if i < 0 {
  26. return "", errors.New(`Can't find "/" or "\".`)
  27. }
  28. //fmt.Println("path333:", path)
  29. return string(path[0 : i+1]), nil
  30. }
  31. func Exists(path string) bool {
  32. _, err := os.Stat(path)
  33. if err == nil {
  34. return true
  35. }
  36. if os.IsNotExist(err) {
  37. return false
  38. }
  39. return false
  40. }