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中转换URL字符串与查询字符串详解
Nov 26 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
May 15 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 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
php md5下16位和32位的实现代码
2008/04/09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php模板原理讲解
2013/11/13 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
代码分析Python地图坐标转换
2018/02/08 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
python -v 报错问题的解决方法
2020/09/15 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
给客户的道歉信
2014/01/13 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
初中军训感言
2015/08/01 职场文书
赡养老人协议书范本
2015/08/06 职场文书