Node.JS 循環(huán)遞歸復制文件夾目錄及其子文件夾下的所有文件
更新時間:2017年09月18日 22:17:02 投稿:mdxy-dxy
在Node.js中,要實現(xiàn)目錄文件夾的循環(huán)遞歸復制也非常簡單,使用fs模塊即可,僅需幾行,而且性能也不錯,我們先來實現(xiàn)文件的復制,需要的朋友可以參考下
實現(xiàn)代碼一:
var fs = require('fs')
var path = require('path')
var copyFile = function(srcPath, tarPath, cb) {
var rs = fs.createReadStream(srcPath)
rs.on('error', function(err) {
if (err) {
console.log('read error', srcPath)
}
cb && cb(err)
})
var ws = fs.createWriteStream(tarPath)
ws.on('error', function(err) {
if (err) {
console.log('write error', tarPath)
}
cb && cb(err)
})
ws.on('close', function(ex) {
cb && cb(ex)
})
rs.pipe(ws)
}
復制目錄及其子目錄
var copyFolder = function(srcDir, tarDir, cb) {
fs.readdir(srcDir, function(err, files) {
var count = 0
var checkEnd = function() {
++count == files.length && cb && cb()
}
if (err) {
checkEnd()
return
}
files.forEach(function(file) {
var srcPath = path.join(srcDir, file)
var tarPath = path.join(tarDir, file)
fs.stat(srcPath, function(err, stats) {
if (stats.isDirectory()) {
console.log('mkdir', tarPath)
fs.mkdir(tarPath, function(err) {
if (err) {
console.log(err)
return
}
copyFolder(srcPath, tarPath, checkEnd)
})
} else {
copyFile(srcPath, tarPath, checkEnd)
}
})
})
//為空時直接回調(diào)
files.length === 0 && cb && cb()
})
}
使用時
copyFolder('...', '....', function(err) {
if (err) {
return
}
//continue
})
文章到此結束,希望有幫助的朋友多多支持腳本之家。
相關文章
nodejs處理圖片的幾種方法總結(使用sharp、jimp及webconvert)
這篇文章主要給大家介紹了關于nodejs處理圖片的幾種方法,文中介紹的方法分別是sharp、jimp及webconvert,在開發(fā)過程中我們有時候需要對圖片進行處理,給一個圖片添加水印、多個圖片合成為一圖片等操作,需要的朋友可以參考下2023-12-12
Node.js+jade抓取博客所有文章生成靜態(tài)html文件的實例
下面小編就為大家?guī)硪黄狽ode.js+jade抓取博客所有文章生成靜態(tài)html文件的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中
這篇文章主要介紹了Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10

