Node.js yoy如何递归地比较节点中的两个目录

Node.js yoy如何递归地比较节点中的两个目录,node.js,git,Node.js,Git,我想对两个目录和子文件夹中的所有文件进行比较。两个目录的文件夹结构相同,但文件可能不同。称它们为目录A和目录B 要从该id创建目录C和目录D。B中比a新的或在a中找不到的所有文件都应复制到C。在a中找到的B中缺少的文件应复制到目录D 我想使用node和一个库,或者运行一些其他的CLI工具,比如git,这样就可以不费吹灰之力地完成我描述的任务 有什么好方法可以做到这一点呢?将两个目录的文件名列表作为两个数组,然后找出它们之间的差异 const _ = require('lodash'); cons

我想对两个目录和子文件夹中的所有文件进行比较。两个目录的文件夹结构相同,但文件可能不同。称它们为目录A和目录B

要从该id创建目录C和目录D。B中比a新的或在a中找不到的所有文件都应复制到C。在a中找到的B中缺少的文件应复制到目录D

我想使用node和一个库,或者运行一些其他的CLI工具,比如git,这样就可以不费吹灰之力地完成我描述的任务


有什么好方法可以做到这一点呢?

将两个目录的文件名列表作为两个数组,然后找出它们之间的差异

const _ = require('lodash');
const fs = require('fs');

const aFiles = fs.readdirSync('/path/to/A');
const bFiles = fs.readdirSync('/path/to/B');

_.difference(aFiles, bFiles).forEach(v => {
    // Files missing from B that are found in A should be copied to directory D
    // Move file v to directory D
});


_.difference(bFiles, aFiles).forEach(v => {
    // Files missing from A that are found in B should be copied to directory C
    // Move file v to directory C
});

这有一个npm包,名为:

const dircompare=require('dir-compare');
const options={compareSize:true};
const path1=“dir1”;
const path2=“dir2”;
const res=dircompare.compareSync(路径1、路径2、选项)
控制台日志(res);

您为什么不与我们分享您的第一张照片?我完全理解你的观点,但不是在寻找一个完整的解决方案,只是一些方法来帮助我开始,不要陷入太多的麻烦。我是两个女儿的父亲,她们想要更多的时间,下面的解决方案帮助我节省了很多时间,因为我对这个应用程序缺乏经验,所以我可能会花在错误的道路上。那是我和女儿们在一起的两个多小时。