node.js和ncp模块 – 无法复制单个文件
我正在使用Node.js v6.3.1和ncp v2.0.0
我只能得到ncp复制一个目录的内容,而不是该目录内的单个文件。
以下是recursion地复制目录内容的代码:
var ncp = require("ncp").ncp; ncp("source/directory/", "destination/directory/", callback);
…这里是相同的代码,但有一个文件作为源代码:
var ncp = require("ncp").ncp; ncp("source/directory/file.txt", "destination/directory/", callback);
从这一切我可以想到的是,NCP是专门devise复制目录recursion,而不是单个文件也许?
我曾经想过使用像这里描述的fileSystem的读 / 写streamfunction,但是为了保持一致性,我希望能够坚持使用ncp。
更新:
我发现了另一个名为node-fs-extra的软件包,它可以完成我所需要的操作,而不需要为操作添加事件处理程序,就像我在fileSystem读/写解决scheme中所做的那样。
这是正在工作的代码:
var fsExtra = require("fs-extra"); fsExtra.copy("source/directory/file.txt", "destination/directory/file.txt", callback);
显然这仍然是不一致的,但至less是不那么冗长。
好吧,我已经知道我做错了什么。
我试图复制一个文件到一个目录,在那里我需要复制并命名目录中的文件。
所以这是我的原始代码不起作用:
var ncp = require("ncp"); ncp("source/directory/file.txt", "destination/directory/", callback);
…这里是固定的代码工作,注意目标目录中包含一个文件名:
var ncp = require("ncp"); ncp("source/directory/file.txt", "destination/directory/file.txt", callback);
所以它看起来像ncp不会只是采取文件,但需要你指定在另一端的文件名成功复制。 我想我假设它只是将具有相同名称的文件复制到目标目录中。
我发现了另一个名为node-fs-extra的软件包,它可以完成我所需要的操作,而不需要为操作添加事件处理程序,就像我在fileSystem读/写解决scheme中所做的那样。
这是正在工作的代码:
var fsExtra = require("fs-extra"); fsExtra.copy("source/directory/file.txt", "destination/directory/file.txt", callback);
显然这仍然是不一致的,但至less是不那么冗长。