我正在尝试通过节点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

09-17 16:13