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 相关文章推荐
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
详解Nodejs内存治理
May 13 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 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页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
5个javascript的数字格式化函数分享
2011/12/07 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Django model select的多种用法详解
2019/07/16 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
九年级体育教学反思
2014/01/23 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
新闻编辑求职信
2014/07/13 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
八一建军节主持词
2015/07/01 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python