3 回答

TA貢獻1848條經驗 獲得超6個贊
這是使用流在一行代碼中復制文件的好方法:
var fs = require('fs');
fs.createReadStream('test.log').pipe(fs.createWriteStream('newLog.log'));
在節(jié)點v8.5.0中,添加了copyFile
const fs = require('fs');
// destination.txt will be created or overwritten by default.
fs.copyFile('source.txt', 'destination.txt', (err) => {
if (err) throw err;
console.log('source.txt was copied to destination.txt');
});

TA貢獻1779條經驗 獲得超6個贊
相同的機制,但這增加了錯誤處理:
function copyFile(source, target, cb) {
var cbCalled = false;
var rd = fs.createReadStream(source);
rd.on("error", function(err) {
done(err);
});
var wr = fs.createWriteStream(target);
wr.on("error", function(err) {
done(err);
});
wr.on("close", function(ex) {
done();
});
rd.pipe(wr);
function done(err) {
if (!cbCalled) {
cb(err);
cbCalled = true;
}
}
}

TA貢獻1943條經驗 獲得超7個贊
createReadStream/createWriteStream由于某種原因,我無法使該方法正常工作,但是使用fs-extranpm模塊,它可以立即工作。我不確定性能是否有所不同。
fs-extra
npm install --save fs-extra
var fs = require('fs-extra');
fs.copySync(path.resolve(__dirname,'./init/xxx.json'), 'xxx.json');
添加回答
舉報