使用 nodejs 将文件夹内容复制到另一个文件夹

Posted

技术标签:

【中文标题】使用 nodejs 将文件夹内容复制到另一个文件夹【英文标题】:Copy folder content to another folder with nodejs 【发布时间】:2019-12-20 20:36:45 【问题描述】:

我正在寻找一种将文件夹的内容复制到另一个文件夹的方法,或者甚至将文件夹替换为旧文件夹,但保留其名称。

感谢您的帮助。

【问题讨论】:

另见:Copy folder recursively in node.js 【参考方案1】:

首先通过npm install fs-extra在您的项目中安装fs-extra模块,然后按照以下步骤操作:

导入以下内容

var fs = require('fs');
var fs_Extra = require('fs-extra');
var path = require('path');

// 在这里声明你的路径

var sourceDir = path.join(__dirname, "../working");
var destinationDir = path.join(__dirname, "../worked")

//如果文件夹不存在则创建它

if (!fs.existsSync(destinationDir))
    fs.mkdirSync(destinationDir,  recursive: true );

//复制文件夹内容

fs_Extra.copy(sourceDir, destinationDir, function(error) 
    if (error) 
        throw error;
     else 
      console.log("success!");
    
); 

注意:源和目标文件夹名称不应相同。

【讨论】:

这只是复制目录而不是它的内容【参考方案2】:

如果不创建,首先检查目标路径是否存在, 那么你可以使用 fs-extra 来复制文件/子目录。

var fs = require('fs');
var fse = require('fs-extra');

var sourceDir = '/tmp/mydir';
var destDir = '/tmp/mynewdir';


// if folder doesn't exists create it
if (!fs.existsSync(destDir))
    fs.mkdirSync(destDir,  recursive: true );


//copy directory content including subfolders
fse.copy(sourceDir, destDir, function (err) 
  if (err) 
    console.error(err);
   else 
    console.log("success!");
  
); 

【讨论】:

如果我们只想复制文件而不重新创建文件夹结构怎么办?我们该怎么做?

以上是关于使用 nodejs 将文件夹内容复制到另一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nodejs 将文件从 Azure 存储 blob(容器)复制到 Azure 文件共享

将内容从一个文件夹复制到另一个文件夹

使用 read()、write()、open() 将文件的内容复制到另一个文件

复制多级文件,将一个文件夹中的所有内容复制到另一个文件夹中

java如何拷贝文件到另一个目录下

NodeJS,mysql2/promise,连接池执行,将数据复制到另一个数据库