NodeJS 文件夹拷贝以及删除功能


Posted in NodeJs onSeptember 03, 2019

文件夹拷贝

function CopyDirectory(src, dest) {
  if (IsFileExist(dest) == false) {
    fs.mkdirSync(dest);
  }
  if (fs.existsSync(src) == false) {
    return false;
  }
  // console.log("src:" + src + ", dest:" + dest);
  // 拷贝新的内容进去
  var dirs = fs.readdirSync(src);
  dirs.forEach(function(item){
    var item_path = path.join(src, item);
    var temp = fs.statSync(item_path);
    if (temp.isFile()) { // 是文件
      // console.log("Item Is File:" + item);
      fs.copyFileSync(item_path, path.join(dest, item));
    } else if (temp.isDirectory()){ // 是目录
      // console.log("Item Is Directory:" + item);
      CopyDirectory(item_path, path.join(dest, item));
    }
  });
}

文件夹删除

function DeleteDirectory(dir) {
  if (fs.existsSync(dir) == true) {
    var files = fs.readdirSync(dir);
    files.forEach(function(item){
      var item_path = path.join(dir, item);
      // console.log(item_path);
      if (fs.statSync(item_path).isDirectory()) {
        DeleteDirectory(item_path);
      }
      else {
        fs.unlinkSync(item_path);
      }
    });
    fs.rmdirSync(dir);
  }
}

nodejs实现文件的拷贝复制

var fs = require( 'fs' ),
  stat = fs.stat;
/*
 * 复制目录中的所有文件包括子目录
 * @param{ String } 需要复制的目录
 * @param{ String } 复制到指定的目录
 */
var copy = function( src, dst ){
  // 读取目录中的所有文件/目录
  fs.readdir( src, function( err, paths ){
    if( err ){
      throw err;
    }
    paths.forEach(function( path ){
      var _src = src + '/' + path,
        _dst = dst + '/' + path,
        readable, writable;   
      stat( _src, function( err, st ){
        if( err ){
          throw err;
        }
        // 判断是否为文件
        if( st.isFile() ){
          // 创建读取流
          readable = fs.createReadStream( _src );
          // 创建写入流
          writable = fs.createWriteStream( _dst ); 
          // 通过管道来传输流
          readable.pipe( writable );
        }
        // 如果是目录则递归调用自身
        else if( st.isDirectory() ){
          exists( _src, _dst, copy );
        }
      });
    });
  });
};
// 在复制目录前需要判断该目录是否存在,不存在需要先创建目录
var exists = function( src, dst, callback ){
  fs.exists( dst, function( exists ){
    // 已存在
    if( exists ){
      callback( src, dst );
    }
    // 不存在
    else{
      fs.mkdir( dst, function(){
        callback( src, dst );
      });
    }
  });
};
// 复制目录
exists( './login', './haha', copy );

总结

以上所述是小编给大家介绍的NodeJS 文件夹拷贝及删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 #NodeJs
nodejs文件夹深层复制功能
Sep 03 #NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 #NodeJs
nodejs简单抓包工具使用详解
Aug 23 #NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 #NodeJs
Nodejs libuv运行原理详解
Aug 21 #NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 21 #NodeJs
You might like
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
python清除函数占用的内存方法
2018/06/25 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python实现单链表的方法示例
2019/09/03 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
如何使用PHP session
2015/04/21 面试题
高中生毕业自我鉴定
2013/10/10 职场文书
个人委托书范本
2014/04/02 职场文书
员工生日会策划方案
2014/06/14 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
优秀教师申报材料
2014/12/16 职场文书
超市督导岗位职责
2015/04/10 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书