You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
2.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package operaSystem
import (
"bufio"
"encoding/base64"
"os"
"path/filepath"
"strings"
"time"
)
func (fl *OperaSystem) ByteToBase64(b []byte) string {
return base64.StdEncoding.EncodeToString(b)
}
// Base64ToByte base64 string to byte
// baseStr parameter is base64 string
func (fl *OperaSystem) Base64ToByte(baseStr string) ([]byte, error) {
return base64.StdEncoding.DecodeString(string(baseStr))
}
// ByteToFile The byte array is converted into a file and landed
// The parameter b is the bate array filePath file path
func (fl *OperaSystem) ByteToFile(b []byte, filePath string) error {
//Open file Create a file if there is no file
file, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm)
if err != nil {
return err
}
_, err = file.Write(b)
if err != nil {
return err
}
defer func(file *os.File) {
err := file.Close()
if err != nil {
panic(err)
}
}(file)
return nil
}
func (fl *OperaSystem) FileName(filePath string) string {
fileInfo, err := os.Stat(filePath)
if err == nil {
return fileInfo.Name()
}
return ""
} // FileName
func (fl *OperaSystem) FileSize(filePath string) int64 {
fileInfo, err := os.Stat(filePath)
if err == nil {
return fileInfo.Size()
}
return 0
}
func (fl *OperaSystem) FileModTime(filePath string) time.Time {
fileInfo, err := os.Stat(filePath)
if err == nil {
return fileInfo.ModTime()
}
return time.Time{}
}
func (fl *OperaSystem) FileMode(filePath string) os.FileMode {
fileInfo, err := os.Stat(filePath)
if err == nil {
return fileInfo.Mode()
}
return 0
}
func (fl *OperaSystem) IsDir(filePath string) bool {
fileInfo, err := os.Stat(filePath)
if err == nil {
return fileInfo.IsDir()
}
return false
}
// Exist 判断文件是否存在
func (tf *OperaSystem) FileExist(path string) bool {
_, err := os.Lstat(path)
return !os.IsNotExist(err)
}
// RemoveSuffix 删除文件后缀
func (tf *OperaSystem) RemoveSuffix(path string) string {
suffix := filepath.Ext(path)
if suffix != "" {
return strings.Replace(path, suffix, "", -1)
}
return ""
}
// RemovePrefix 删除文件前缀
func (tf *OperaSystem) RemovePrefix(path string) string {
prefix := filepath.Ext(path)
if prefix != "" {
return prefix[1:]
}
return ""
}
// FileAppendString 将String写入文件追加模式
func (tf *OperaSystem) FileAppendString(content string, path string) (*os.File, error) {
file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
return nil, err
}
defer file.Close()
write := bufio.NewWriter(file)
write.WriteString(content)
write.Flush()
return file, nil
}