node脚本(把一个文件夹下的内容复制进另一个文件夹)

const fs = require('fs')
const path = require('path')

// 只需要改这两个路径就好,其他代码可以原封不动直接使用
const sourceDir = 'D:/demo111'
const targetDir = 'D:/demo222'

fs.readdir(sourceDir, (err, files) => {
  if (err) throw err;

  files.forEach(file => {
    const sourcePath = path.join(sourceDir, file);

    fs.stat(sourcePath, (err, stats) => {
      if (err) throw err;

      if (stats.isDirectory()) {
        // 如果是子文件夹,递归复制子文件夹中的内容
        const targetPath = path.join(targetDir, file);
        fs.mkdir(targetPath, { recursive: true }, err => {
          if (err) throw err;
          copyFolder(sourcePath, targetPath);
        });
      } else {
        // 如果是文件,直接复制文件
        const targetPath = path.join(targetDir, file);
        fs.copyFile(sourcePath, targetPath, err => {
          if (err) throw err;
          console.log(`${sourcePath} was copied to ${targetPath}`);
        });
      }
    });
  });
});

function copyFolder(sourcePath, targetPath) {
  fs.readdir(sourcePath, (err, files) => {
    if (err) throw err;

    files.forEach(file => {
      const sourceFile = path.join(sourcePath, file);
      const targetFile = path.join(targetPath, file);

      fs.stat(sourceFile, (err, stats) => {
        if (err) throw err;

        if (stats.isDirectory()) {
          // 如果是子文件夹,递归复制子文件夹中的内容
          fs.mkdir(targetFile, { recursive: true }, err => {
            if (err) throw err;
            copyFolder(sourceFile, targetFile);
          });
        } else {
          // 如果是文件,直接复制文件
          fs.copyFile(sourceFile, targetFile, err => {
            if (err) throw err;
            console.log(`${sourceFile} was copied to ${targetFile}`);
          });
        }
      });
    });
  });
}

copyFolder(sourceDir, targetDir);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值