add CopyFile

This commit is contained in:
yanweidong 2025-08-21 10:59:18 +08:00
parent ffb706df32
commit 63a4653eb2
1 changed files with 27 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package utils
import (
"errors"
"fmt"
"io"
"os"
"path/filepath"
@ -21,6 +22,32 @@ func StringToFile(path, content string) error {
return nil
}
// 文件复制
func CopyFile(src, dst string) (int64, error) {
sourceFileStat, err := os.Stat(src)
if err != nil {
return 0, err
}
if !sourceFileStat.Mode().IsRegular() {
return 0, fmt.Errorf("%s is not a regular file", src)
}
source, err := os.Open(src)
if err != nil {
return 0, err
}
defer source.Close()
destination, err := os.Create(dst)
if err != nil {
return 0, err
}
defer destination.Close()
nBytes, err := io.Copy(destination, source)
return nBytes, err
}
// 递归遍历文件夹
// rootDir: 文件夹根目录
// s: 存储文件名的切片