Browse Source

同步相同文件时候备份原有文件

master
453530270@qq.com 2 years ago
parent
commit
bca9664c86
  1. 7
      fsv2/handler/handler.go
  2. 30
      fsv2/util/util.go

7
fsv2/handler/handler.go

@ -7,6 +7,7 @@ import (
"io" "io"
"mime" "mime"
"strings" "strings"
"time"
"net/http" "net/http"
"os" "os"
@ -109,6 +110,12 @@ func ReceiveHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
} }
// 检查文件是否存在
if util.IsFileExist(filename) {
// 文件重命名
dstfname := filename + "_backup_" + time.Now().Format("20060102150405")
os.Rename(filename, dstfname)
}
out, err := os.Create(nfname) out, err := os.Create(nfname)
if err != nil { if err != nil {

30
fsv2/util/util.go

@ -172,6 +172,36 @@ func Base64dec(bsstr string) string {
return string(dedc) return string(dedc)
} }
// 文件备份
func Filebackup(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, in)
if err != nil {
return err
}
return out.Sync()
}
// 判断文件是否存在
func IsFileExist(filename string) bool {
if _, err := os.Stat(filename); err == nil {
return true
}
return false
}
// package main // package main
// import ( // import (

Loading…
Cancel
Save