栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

nodejs 递归拷贝、读取目录下所有文件和目录

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nodejs 递归拷贝、读取目录下所有文件和目录

先给大家介绍下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 递归拷贝、读取目录下所有文件和目录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/74701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号