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中操作mysql数据库示例
Dec 20 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
Dec 30 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
JS获取时间的方法
2015/01/21 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
原生JavaScript实现进度条
2021/02/19 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
如何使用python进行pdf文件分割
2019/11/11 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
python数字类型math库原理解析
2020/03/02 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
什么是唯一索引
2015/07/05 面试题
社区工作者思想汇报
2014/01/13 职场文书
计划生育目标责任书
2015/05/09 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript