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全栈框架StrongLoop推荐
Nov 09 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 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
星际RPG字典
2020/03/04 星际争霸
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
python标准日志模块logging的使用方法
2013/11/01 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
大宝sod蜜广告词
2014/03/21 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
卫生系统先进事迹
2014/05/13 职场文书
优秀员工演讲稿
2014/05/19 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
电影地道战观后感
2015/06/04 职场文书
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android