90 lines
2.5 KiB
Go
90 lines
2.5 KiB
Go
package utils
|
||
|
||
import (
|
||
"io"
|
||
"os"
|
||
)
|
||
|
||
// AppendSourceToFile 将源文件的内容添加到目标文件,使用golang标准库完成,跨平台、安全性更强
|
||
func AppendSourceToFile(sourceFile, targetFile string) bool {
|
||
|
||
// 打开源文件
|
||
source, err := os.Open(sourceFile)
|
||
if err != nil {
|
||
log.ErrorF("[BasicAppendSourceToFile] - error open source file => %s, error is %s", sourceFile, err.Error())
|
||
return false
|
||
}
|
||
defer source.Close()
|
||
|
||
// 打开目标文件,如果不存在则创建,如果存在则在末尾追加
|
||
target, err := os.OpenFile(targetFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||
if err != nil {
|
||
log.ErrorF("[BasicAppendSourceToFile] - error open target file => %s, error is %s", sourceFile, err.Error())
|
||
return false
|
||
}
|
||
defer target.Close()
|
||
|
||
// 将源文件内容复制到目标文件
|
||
_, err = io.Copy(target, source)
|
||
if err != nil {
|
||
log.ErrorF("[BasicAppendSourceToFile] - Error appending to target file: %s", err.Error())
|
||
return false
|
||
}
|
||
|
||
return true
|
||
}
|
||
|
||
// AppendContentToFile 向目标文件中追加写入一些内容
|
||
func AppendContentToFile(content string, targetFile string) bool {
|
||
|
||
// 打开文件用于追加。如果文件不存在,将会创建一个新文件。
|
||
file, err := os.OpenFile(targetFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||
if err != nil {
|
||
log.ErrorF("[BasicAppendContentToFile] - Error opening file: %s , error is %s", targetFile, err.Error())
|
||
return false
|
||
}
|
||
defer file.Close() // 确保文件最终被关闭
|
||
|
||
// 写入内容到文件
|
||
if _, err := file.WriteString(content); err != nil {
|
||
log.ErrorF("[BasicAppendContentToFile] - Error writing to file: %s , error is %s", targetFile, err.Error())
|
||
return false
|
||
}
|
||
|
||
return true
|
||
}
|
||
|
||
// AppendNullToFile 清空一个文件
|
||
func AppendNullToFile(targetFile string) bool {
|
||
|
||
// 使用os.O_TRUNC清空文件内容
|
||
file, err := os.OpenFile(targetFile, os.O_TRUNC|os.O_WRONLY, 0644)
|
||
if err != nil {
|
||
log.ErrorF("[AppendNullToFile] - Error opening file: %s, error is %s", targetFile, err.Error())
|
||
return false
|
||
}
|
||
defer file.Close() // 确保在函数退出前关闭文件
|
||
|
||
return true
|
||
}
|
||
|
||
func WordSpaceCompletion(source string, totalLength int) string {
|
||
sourceLength := len(source)
|
||
|
||
if sourceLength >= totalLength {
|
||
return source
|
||
}
|
||
|
||
for i := 0; i < totalLength-sourceLength; i++ {
|
||
source += " "
|
||
}
|
||
|
||
return source
|
||
}
|
||
|
||
// FileExists 文件存在返回true,不存在返回false,如果文件是一个目录,也返回false
|
||
func FileExists(fileFullPath string) bool {
|
||
_, err := os.Stat(fileFullPath)
|
||
return err == nil
|
||
}
|