package main
import (
"fmt"
"io"
"os"
"path/filepath"
"time"
)
func main() {
//获取当前执行文件绝对路径
current_path, err := filepath.Abs("./")
if err != nil {
fmt.Println(err)
}
file_log_path := current_path + "/log/"
//判断文件目录是否存在,不存在则创建
if !pathExists(file_log_path) {
err := os.Mkdir(file_log_path, os.ModePerm)
if err != nil {
fmt.Println(err)
}
}
//文件名称定义
file_name := file_log_path + time.Now().Format("20060102150405")
err = copy("1.txt", file_name)
//文件内容清空
err = os.Truncate("1.txt", 0)
if err != nil {
fmt.Println(err)
}
}
//文件是否存在方法定义
func pathExists(path string) bool {
_, err := os.Stat(path)
if err == nil {
return true
}
if os.IsNotExist(err) {
return false
}
return false
}
//文件复制方法
func copy(src, dst string) error {
sourceFileStat, err := os.Stat(src)
if err != nil {
return err
}
if !sourceFileStat.Mode().IsRegular() {
return fmt.Errorf("%s is not a regular file", src)
}
source, err := os.Open(src)
if err != nil {
return err
}
defer source.Close()
destination, err := os.Create(dst)
if err != nil {
return err
}
defer destination.Close()
_, err = io.Copy(destination, source)
return err
}