1
0
mirror of https://gitee.com/willfree/mlsr.git synced 2026-06-09 08:19:30 +08:00
Files
mlsr/utils/FileUtils.go
T
2022-05-20 15:56:29 +08:00

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()
}