Node.JS 循環(huán)遞歸復(fù)制文件夾目錄及其子文件夾下的所有文件
實(shí)現(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)
}
復(fù)制目錄及其子目錄
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)
}
})
})
//為空時(shí)直接回調(diào)
files.length === 0 && cb && cb()
})
}
使用時(shí)
copyFolder('...', '....', function(err) {
if (err) {
return
}
//continue
})
文章到此結(jié)束,希望有幫助的朋友多多支持腳本之家。
相關(guān)文章
node.js使用net模塊創(chuàng)建服務(wù)器和客戶(hù)端示例【基于TCP協(xié)議】
這篇文章主要介紹了node.js使用net模塊創(chuàng)建服務(wù)器和客戶(hù)端,結(jié)合實(shí)例形式分析了node.js使用net模塊實(shí)現(xiàn)TCP客戶(hù)端與服務(wù)器端通信的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
詳解Node.js實(shí)現(xiàn)301、302重定向服務(wù)
這篇文章主要介紹了詳解Node.js實(shí)現(xiàn)301、302重定向服務(wù),詳細(xì)的介紹了用Nodejs的http模塊,實(shí)現(xiàn)一個(gè)301或302重定服務(wù)。2017-04-04
npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題詳解
npm?install總是一言難盡,下面這篇文章主要給大家介紹了關(guān)于npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
gyp?ERR!報(bào)錯(cuò)問(wèn)題解決辦法
這篇文章主要給大家介紹了關(guān)于gyp?ERR!報(bào)錯(cuò)問(wèn)題的解決辦法,文中將解決的辦法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
nodejs+express+multer搭建文件上傳文件預(yù)覽功能
NodeJS使用文件流解決大文件處理的內(nèi)存與時(shí)間效率問(wèn)題
解決node-webkit 不支持html5播放mp4視頻的方法
node.js中的buffer.toJSON方法使用說(shuō)明

