代码拉取完成,页面将自动刷新
package helper
import (
"errors"
"fmt"
"io/ioutil"
"log"
"os"
"os/exec"
"path"
"path/filepath"
"runtime"
"strings"
)
func PathExists(path string) bool {
_, err := os.Stat(path)
if err == nil {
return true
}
if os.IsNotExist(err) {
return false
}
return false
}
func Mkdir(dir string) {
// 创建文件夹
var exist = PathExists(dir)
if exist {
fmt.Println(dir + "文件夹已存在!")
} else {
// 文件夹名称,权限
err := os.Mkdir(dir, os.ModePerm)
if err != nil {
fmt.Println(dir+"文件夹创建失败:", err.Error())
} else {
fmt.Println(dir + "文件夹创建成功!")
}
}
}
func GetFileContent(filePath string) (string, error) {
filePath = strings.ReplaceAll(filePath, "\\", "/")
bytes, err := ioutil.ReadFile(filePath)
if err != nil {
return "", err
}
return string(bytes), nil
}
// 最终方案-全兼容
func GetCurrentAbPath() string {
//if IsTempDirRun() {
// return "."
//}
return GetAbsPath()
}
func GetAbsPath() string {
dir := GetCurrentAbPathByExecutable()
if strings.Contains(dir, getTmpDir()) {
return getCurrentAbPathByCaller()
}
return dir
}
// 获取系统临时目录,兼容go run
func getTmpDir() string {
dir := os.Getenv("TEMP")
if dir == "" {
dir = os.Getenv("TMP")
}
res, _ := filepath.EvalSymlinks(dir)
return res
}
func IsTempDirRun() bool {
dir := os.Getenv("TEMP")
if dir == "" {
dir = os.Getenv("TMP")
}
return dir != ""
}
// 获取当前执行文件绝对路径
func GetCurrentAbPathByExecutable() string {
exePath, err := os.Executable()
if err != nil {
log.Fatal(err)
}
res, _ := filepath.EvalSymlinks(filepath.Dir(exePath))
return res
}
// 获取当前执行文件绝对路径(go run)
func getCurrentAbPathByCaller() string {
var abPath string
_, filename, _, ok := runtime.Caller(0)
if ok {
abPath = path.Dir(filename)
abPath = path.Dir(abPath)
abPath = path.Dir(abPath)
}
return abPath
}
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
}
i := strings.LastIndex(path, "/")
if i < 0 {
i = strings.LastIndex(path, "\\")
}
if i < 0 {
return "", errors.New(`error: Can't find "/" or "\".`)
}
return string(path[0 : i+1]), nil
}
func GetCurrentDirectory() string {
//返回绝对路径 filepath.Dir(os.Args[0])去除最后一个元素的路径
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err != nil {
log.Fatal(err)
}
//将\替换成/
return strings.Replace(dir, "\\", "/", -1)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。