我正在尝试通过节点ncp library过滤文件,但是它的过滤器不起作用。
一旦过滤器返回错误,它将破坏整个复制过程
ncp(source, destination, options, function (err) {
if (err) {
console.error("backup error:", err);
}
console.log("Backup of done!');
});
var options = {
filter: function (file) {
console.log("copying file:", file);
var res = file.toString().indexOf("\\testdrive") !== -1;
console.log("res:", res);
return !res;
},
//filter: new RegExp("\\testdrive"),//Or RegEx intance
};
因此,一旦过滤器功能或RegEx实例得到错误的结果,整个复制中断
options.filter-一个RegExp实例,针对该实例测试每个文件名以确定是否复制它,或者对带有单个参数的函数进行测试:复制的文件名,返回true或false,确定是否复制文件。
最佳答案
刚找到解决方案:
好像过滤器RegExp / function不仅会被调用ncp应该复制的文件名,还会被文件夹名调用。
它过滤的第一个文件夹名称显然是您作为源传递给ncp的名称。如果失败,ncp只会停止复制该文件夹中的任何内容。
参见:https://github.com/AvianFlu/ncp/issues/130