Node.js 文件夹目录结构创建实例代码


Posted in Javascript onJuly 08, 2016

第一次接触NodeJS的文件系统就被它的异步的响应给搞晕了,后来发现NodeJS判断文件夹是否存在和创建文件夹是还有同步方法的,但是还是想尝试使用异步的方法去实现。

使用的方法:

fs.exists(path, callback);

fs.mkdir(path, [mode], callback);

实现文件夹目录结构的创建代码实现如下:

//创建文件夹
function mkdir(pos, dirArray,_callback){
  var len = dirArray.length;
  console.log(len);
  if( pos >= len || pos > 10){
    _callback();
    return;
  }
  var currentDir = '';
  for(var i= 0; i <=pos; i++){
    if(i!=0)currentDir+='/';
    currentDir += dirArray[i];
  }
  fs.exists(currentDir,function(exists){
    if(!exists){
      fs.mkdir(currentDir,function(err){
        if(err){
          console.log('创建文件夹出错!');
        }else{
          console.log(currentDir+'文件夹-创建成功!');
          mkdir(pos+1,dirArray,_callback);
        }
      });
    }else{
      console.log(currentDir+'文件夹-已存在!');
      mkdir(pos+1,dirArray,_callback);
    }
  });
}

//创建目录结构
function mkdirs(dirpath,_callback) {
  var dirArray = dirpath.split('/');
  fs.exists( dirpath ,function(exists){
    if(!exists){
      mkdir(0, dirArray,function(){
        console.log('文件夹创建完毕!准备写入文件!');
        _callback();
      });
    }else{
      console.log('文件夹已经存在!准备写入文件!');
      _callback();
    }
  });
}

首先把需要创建的一个目录结构存放到一个数组里面,然后主要采用深搜的思想去实现(深度为数组的长度)。

以上这篇Node.js 文件夹目录结构创建实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
详解vue项目构建与实战
Jun 27 Javascript
微信JSSDK调用微信扫一扫功能的方法
Jul 25 Javascript
详解vue 数据传递的方法
Apr 19 Javascript
Angularjs实现数组随机排序的方法
Oct 02 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
基于js实现数组相邻元素上移下移
May 19 Javascript
canvas实现贪食蛇的实践
Feb 15 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 #Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 #Javascript
简单实现js页面切换功能
Jan 10 #Javascript
JavaScript作用域示例详解
Jul 07 #Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 #Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
Jul 07 #Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 #Javascript
You might like
中国的第一台收音机
2021/03/01 无线电
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
checkbox使用示例
2013/08/23 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
Javascript call及apply应用场景及实例
2020/08/26 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
python多线程用法实例详解
2015/01/15 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
python3实现随机数
2018/06/25 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python 爬虫性能相关总结
2020/08/03 Python
Python 列表反转显示的四种方法
2020/11/16 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
cf搞笑广告词
2014/03/14 职场文书
教师演讲稿开场白
2014/08/25 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL