Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017-09-18 22:17
971 查看
实现代码一:
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) } }) }) //为空时直接回调 files.length === 0 && cb && cb() }) }
使用时
copyFolder('...', '....', function(err) { if (err) { return } //continue })
文章到此结束,希望有帮助的朋友多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Node.js使用递归实现遍历文件夹中所有文件
- asp.net 递归删除文件夹及其子文件夹和所有文件[转]
- Node.JS循环删除非空文件夹及子目录下的所有文件
- 非递归遍历指定文件夹下的所有文件及其子文件夹
- java单个文件复制,递归删除、复制目录下所有内容,递归创建文件夹,.7z文件解压等
- oc 文件操作,查看目录下所有文件包括子文件夹内包含的所有文件,循环遍历递归
- 递归删除指定目录下的指定文件夹及其所有文件
- 非递归遍历指定文件夹下的所有文件及其子文件夹 [11/29/2010 更新]
- Node.js 使用递归实现遍历文件夹中所有文件
- 获取文件夹及其子文件夹下的所有文件
- php删除与复制文件夹及其文件夹下所有文件的实现代码
- JAVA递归调用 复制文件夹及子文件夹及文件夹下的文件
- 递归修改当前目录下所有文件/文件夹3个时间戳
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- 递归删除文件夹目录下所有文件
- ftp下载目录下所有文件及文件夹内(递归)
- 递归遍历所有指定目录中的文件及子文件夹中的文件
- php 获取某个文件夹及其子文件夹的所有文件并支持文件格式的筛选
- iOS 递归遍历文件夹及其子集下的所有文件
- python 3.3 复制文件 或 文件夹及其子文件夹 小例