js实现将文件夹内所有文件和子文件夹拷贝到另外的文件夹中
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
·
方案一:
可以使用child_process模块调用操作系统的命令完成,比如linux下的mv mkdir等命令
方案二:
纯js方法
需要两个引用2个库
const fs = require('fs');
const path = require('path');
将源文件拷贝到目标文件:
//! 将srcPath路径的文件复制到tarPath
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);
}
将源文件夹下所有的文件和子文件夹,拷贝到目标文件夹下
//! 将srcDir文件下的文件、文件夹递归的复制到tarDir下
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();
});
}
如上所示。
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 5 年前
5def40a3
Add host customization support for the NodeJS version 5 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)