nodejs 递归拷贝、读取目录下所有文件和目录
程序员文章站
2024-01-07 15:16:28
先给大家介绍下nodejs 递归拷贝目录下所有文件和目录,具体代码如下所示:
var fs=require('fs');
var copy=function(s...
先给大家介绍下nodejs 递归拷贝目录下所有文件和目录,具体代码如下所示:
var fs=require('fs'); var copy=function(src,dst){ let paths = fs.readdirsync(src); //同步读取当前目录 paths.foreach(function(path){ var _src=src+'/'+path; var _dst=dst+'/'+path; fs.stat(_src,function(err,stats){ //stats 该对象 包含文件属性 if(err)throw err; if(stats.isfile()){ //如果是个文件则拷贝 let readable=fs.createreadstream(_src);//创建读取流 let writable=fs.createwritestream(_dst);//创建写入流 readable.pipe(writable); }else if(stats.isdirectory()){ //是目录则 递归 checkdirectory(_src,_dst,copy); } }); }); } var checkdirectory=function(src,dst,callback){ fs.access(dst, fs.constants.f_ok, (err) => { if(err){ fs.mkdirsync(dst); callback(src,dst); }else{ callback(src,dst); } }); }; const sources_directory = 'd:commonprefab'; //源目录 checkdirectory(sources_directory,__dirname,copy);
ps:下面看下nodejs递归读取目录下的所有文件
递归读取当前目录下的所有文件。
var fs = require('fs'); var path = require('path'); var exec = require('child_process').exec; function readfilelist(dir, fileslist = []) { const files = fs.readdirsync(dir); console.log(files); files.foreach((item, index) => { var fullpath = path.join(dir, item); const stat = fs.statsync(fullpath); if (stat.isdirectory()) { readfilelist(path.join(dir, item), fileslist); //递归读取文件 } else { fileslist.push(fullpath); } }); return fileslist; } var fileslist = []; readfilelist(__dirname,fileslist); console.log(fileslist);
总结
以上所述是小编给大家介绍的nodejs 递归拷贝、读取目录下所有文件和目录,希望对大家有所帮助