以下是一个遍历文件夹并复制所有文件到新文件夹的示例代码:
package main
import (
"fmt"
"io"
"os"
"path/filepath"
)
func main() {
// 原文件夹路径
srcPath := "source_folder"
// 新文件夹路径
dstPath := "destination_folder"
// 遍历原文件夹下所有文件和子文件夹
err := filepath.Walk(srcPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 如果当前路径是文件夹,无需操作,继续遍历
if info.IsDir() {
return nil
}
// 创建目标文件夹路径
dstFilePath := filepath.Join(dstPath, info.Name())
// 打开源文件
srcFile, err := os.Open(path)
if err != nil {
return err
}
defer srcFile.Close()
// 创建或截断目标文件
dstFile, err := os.Create(dstFilePath)
if err != nil {
return err
}
defer dstFile.Close()
// 复制源文件内容到目标文件
_, err = io.Copy(dstFile, srcFile)
if err != nil {
return err
}
fmt.Printf("Copied %s to %s\n", path, dstFilePath)
return nil
})
if err != nil {
fmt.Println(err)
}
}
filepath.Walk()
filepath.Join()filepath.Join()
此代码只是一个示例,您可以根据需要进行修改和定制。