fb15695dab
Add CPU RAM Status Add Disk Info
147 lines
2.8 KiB
Go
147 lines
2.8 KiB
Go
package file
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"mime/multipart"
|
|
"os"
|
|
"path"
|
|
)
|
|
|
|
// GetSize get the file size
|
|
func GetSize(f multipart.File) (int, error) {
|
|
content, err := ioutil.ReadAll(f)
|
|
return len(content), err
|
|
}
|
|
|
|
// GetExt get the file ext
|
|
func GetExt(fileName string) string {
|
|
return path.Ext(fileName)
|
|
}
|
|
|
|
// CheckNotExist check if the file exists
|
|
func CheckNotExist(src string) bool {
|
|
_, err := os.Stat(src)
|
|
|
|
return os.IsNotExist(err)
|
|
}
|
|
|
|
// CheckPermission check if the file has permission
|
|
func CheckPermission(src string) bool {
|
|
_, err := os.Stat(src)
|
|
|
|
return os.IsPermission(err)
|
|
}
|
|
|
|
// IsNotExistMkDir create a directory if it does not exist
|
|
func IsNotExistMkDir(src string) error {
|
|
if notExist := CheckNotExist(src); notExist == true {
|
|
if err := MkDir(src); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// MkDir create a directory
|
|
func MkDir(src string) error {
|
|
err := os.MkdirAll(src, os.ModePerm)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// RMDir remove a directory
|
|
func RMDir(src string) error {
|
|
err := os.RemoveAll(src)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
os.Remove(src)
|
|
return nil
|
|
}
|
|
|
|
// Open a file according to a specific mode
|
|
func Open(name string, flag int, perm os.FileMode) (*os.File, error) {
|
|
f, err := os.OpenFile(name, flag, perm)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return f, nil
|
|
}
|
|
|
|
// MustOpen maximize trying to open the file
|
|
func MustOpen(fileName, filePath string) (*os.File, error) {
|
|
//dir, err := os.Getwd()
|
|
//if err != nil {
|
|
// return nil, fmt.Errorf("os.Getwd err: %v", err)
|
|
//}
|
|
|
|
src := filePath
|
|
perm := CheckPermission(src)
|
|
if perm == true {
|
|
return nil, fmt.Errorf("file.CheckPermission Permission denied src: %s", src)
|
|
}
|
|
|
|
err := IsNotExistMkDir(src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("file.IsNotExistMkDir src: %s, err: %v", src, err)
|
|
}
|
|
|
|
f, err := Open(src+fileName, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0644)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("Fail to OpenFile :%v", err)
|
|
}
|
|
|
|
return f, nil
|
|
}
|
|
|
|
// 判断所给路径文件/文件夹是否存在
|
|
func Exists(path string) bool {
|
|
_, err := os.Stat(path) //os.Stat获取文件信息
|
|
if err != nil {
|
|
if os.IsExist(err) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// 判断所给路径是否为文件夹
|
|
func IsDir(path string) bool {
|
|
s, err := os.Stat(path)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return s.IsDir()
|
|
}
|
|
|
|
// 判断所给路径是否为文件
|
|
func IsFile(path string) bool {
|
|
return !IsDir(path)
|
|
}
|
|
|
|
func CreateFile(path string) error {
|
|
file, err := os.Create(path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer file.Close()
|
|
return nil
|
|
}
|
|
|
|
// IsNotExistMkDir create a directory if it does not exist
|
|
func IsNotExistCreateFile(src string) error {
|
|
if notExist := CheckNotExist(src); notExist == true {
|
|
if err := CreateFile(src); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|