我正在实现一个 node.js 应用程序,它将文件路径数组复制到特定的目的地。
方法很简单,假设我在源路径有10个文件路径,1个路径作为目标路径。因此,每个 From 路径都将使用 fs.copy 函数逐一复制到目标。
但是,由于文件数组的数量和大小可能很大,因此我尝试实现一项功能,允许用户取消复制文件的操作并删除已复制的内容。
我的问题是,是否可以对 fs.copy 进行取消操作?例如,当 fs.copy 尝试复制 2GB 文件时,如何停止它?
除了 fs.copy 之外还有其他选择来实现我想要的吗?
最佳答案
我想您可以将读取流通过管道传输到写入流,然后在您想要停止复制并删除目标文件时取消管道和取消链接。
var from = fs.createReadStream(fromFilename)
.pipe(to);
var to = fs.createWriteStream(toFilename)
.on("unpipe", function() {
fs.unlink(toFilename); // effectively deletes the file
});
// triggered by user
from.unpipe(); // stops the copy, triggers the delete
这行得通吗?
关于javascript - 使用node.js复制文件并可以取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38520185/