本文实例讲述了node.js复制文件的方法。分享给大家供大家参考,具体如下: 本人开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,为了省事,解决这个问题,写了一个node复制文件。 //
本文实例讲述了node.js复制文件的方法。分享给大家供大家参考,具体如下:
本人开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,为了省事,解决这个问题,写了一个node复制文件。
// js/app.js:指定确切的文件名。
// js*.js:某个目录及其所有子目录中的所有后缀名为js的文件。
// !js/app.js:除了js/app.js以外的所有文件。
// *.+(js|CSS):匹配项目根目录下,所有后缀名为js或css的文件。
//流 stream 管道 pipe 管道
//如果想在读取流和写入流的时候做完全的控制,可以使用数据事件。但对于单纯的文件复制来说读取流和写入流可以通过管道来传输数据。
var fs = require("fs");
var path = require("path");
//获取当前目录绝对路径,这里resolve()不传入参数
var filePath = path.resolve();
var copy = function(src,dst){
//判断文件需要时间,则必须同步
if(fs.existsSync(src)){
fs.readdir(src,function(err,files){
if(err){console.log(err);return;}
files.forEach(function(filename){
//url+"/"+filename不能用/直接连接,Unix系统是”/“,windows系统是”“
var url = path.join(src,filename),
dest = path.join(dst,filename);
console.log(url);
console.log(dest);
fs.stat(path.join(src,filename),function(err, stats){
if (err) throw err;
//是文件
if(stats.isFile()){
//创建读取流
readable = fs.createReadStream(url);
//创建写入流
writable = fs.createWriteStream(dest,{ encoding: "utf8" });
// 通过管道来传输流
readable.pipe(writable);
//如果是目录
}else if(stats.isDirectory()){
exists( url, dest, copy );
}
});
});
});
}else{
console.log("给定的目录不存,读取不到文件");
return;
}
}
function exists(url,dest,callback){
fs.exists(dest,function(exists){
if(exists){
callback && callback(url,dest);
}else{
//第二个参数目录权限 ,默认0777(读写权限)
fs.mkdir(dest,0777,function(err){
if (err) throw err;
callback && callback(url,dest);
});
}
});
}
exports.copy = copy;
//copy("./views/","./www/");
copy("./../jdcase/homeappliances/",filePath);
希望本文所述对大家nodejs程序设计有所帮助。
--结束END--
本文标题: Node.js复制文件的方法示例
本文链接: https://lsjlt.com/news/12853.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0