mirror of
https://gitee.com/willfree/mlsr.git
synced 2026-06-09 18:29:35 +08:00
122 lines
2.4 KiB
Go
122 lines
2.4 KiB
Go
// Package utils
|
|
// @Author: Jianming Que (阙建明)
|
|
// @Description:
|
|
// @Version: 1.0.0
|
|
// @Date: 2021/4/26 11:27 上午
|
|
// @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
|
//
|
|
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"minlib/common"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func GetRelPath(path string) string {
|
|
if strings.HasPrefix(path, "~") {
|
|
homePath, err := common.Home()
|
|
if err != nil {
|
|
common.LogFatal("Get current user home path failed!")
|
|
}
|
|
return homePath + path[1:]
|
|
} else {
|
|
return path
|
|
}
|
|
}
|
|
|
|
func ReadFromFile(path string) (string, error) {
|
|
file, err := os.Open(path)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
defer file.Close()
|
|
if content, err := ioutil.ReadAll(file); err != nil {
|
|
return "", err
|
|
} else {
|
|
return string(content), nil
|
|
}
|
|
}
|
|
|
|
// WriteFile 写入文件,文件不存在则创建,如在则重写内容
|
|
func ClearAndWriteFile(path string, str string) {
|
|
_, b := IsFile(path)
|
|
var f *os.File
|
|
var err error
|
|
if b {
|
|
//打开文件,
|
|
f, _ = os.OpenFile(path, os.O_RDWR|os.O_TRUNC, 0666)
|
|
} else {
|
|
//新建文件
|
|
f, err = os.Create(path)
|
|
}
|
|
|
|
//使用完毕,需要关闭文件
|
|
defer func() {
|
|
err = f.Close()
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
}
|
|
}()
|
|
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
return
|
|
}
|
|
_, err = f.WriteString(str)
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
}
|
|
}
|
|
|
|
// WriteFile 写入文件,文件不存在则创建,如在则追加内容
|
|
func WriteFile(path string, str string) {
|
|
_, b := IsFile(path)
|
|
var f *os.File
|
|
var err error
|
|
if b {
|
|
//打开文件,
|
|
f, _ = os.OpenFile(path, os.O_APPEND, 0666)
|
|
} else {
|
|
//新建文件
|
|
f, err = os.Create(path)
|
|
}
|
|
|
|
//使用完毕,需要关闭文件
|
|
defer func() {
|
|
err = f.Close()
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
}
|
|
}()
|
|
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
return
|
|
}
|
|
_, err = f.WriteString(str)
|
|
if err != nil {
|
|
fmt.Println("err = ", err)
|
|
}
|
|
}
|
|
|
|
// IsExists 判断路径是否存在
|
|
func IsExists(path string) (os.FileInfo, bool) {
|
|
f, err := os.Stat(path)
|
|
return f, err == nil || os.IsExist(err)
|
|
}
|
|
|
|
// IsDir 判断所给路径是否为文件夹
|
|
func IsDir(path string) (os.FileInfo, bool) {
|
|
f, flag := IsExists(path)
|
|
return f, flag && f.IsDir()
|
|
}
|
|
|
|
// IsFile 判断所给路径是否为文件
|
|
func IsFile(path string) (os.FileInfo, bool) {
|
|
f, flag := IsExists(path)
|
|
return f, flag && !f.IsDir()
|
|
}
|