如何复制文件?

Jos*_*ivo 26 javascript node.js

如何在Node.js中复制文件?

+ /old
|- image.png
+ /new
Run Code Online (Sandbox Code Playgroud)

我想将image1.png从'old'复制到'new'目录.

这不起作用.

newFile = fs.createWriteStream('./new/image2.png');     
oldFile = fs.createReadStream('./old/image1.png');

oldFile.addListener("data", function(chunk) {
  newFile.write(chunk);
})

oldFile.addListener("close",function() {
  newFile.end();
});
Run Code Online (Sandbox Code Playgroud)

谢谢你的答复!

Ant*_*ins 14

目前的首选方式:

oldFile.pipe(newFile);
Run Code Online (Sandbox Code Playgroud)


b_e*_*erb 7

newFile.once('open', function(fd){
    require('util').pump(oldFile, newFile);
});     
Run Code Online (Sandbox Code Playgroud)

  • 您必须等待写入文件的"打开"事件.(我现在加了这个). (3认同)

tom*_*hel 6

如果你想同步完成这项工作,只需阅读然后直接写入文件:

var copyFileSync = function(srcFile, destFile, encoding) {
  var content = fs.readFileSync(srcFile, encoding);
  fs.writeFileSync(destFile, content, encoding);
}
Run Code Online (Sandbox Code Playgroud)

当然,错误处理和东西总是一个好主意!