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 相关文章推荐
用javascript实现的支持lrc歌词的播放器
May 17 Javascript
JavaScript 密码强度判断代码
Sep 05 Javascript
基于jsTree的无限级树JSON数据的转换代码
Jul 27 Javascript
JQuery.Ajax之错误调试帮助信息介绍
Jul 04 Javascript
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 Javascript
学习使用bootstrap3栅格系统
Apr 12 Javascript
深入理解JavaScript中为什么string可以拥有方法
May 24 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
Dec 01 Javascript
JavaScript前端实现压缩图片功能
Mar 06 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
Openlayers绘制聚合标注
Sep 28 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
帅气的琦玉老师
2020/03/02 日漫
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript 限制输入脚本大全
2009/11/03 Javascript
js电话号码验证方法
2015/09/28 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
vue实现拖拽效果
2019/12/23 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
详解python的argpare和click模块小结
2019/03/31 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
python十进制转二进制的详解
2020/02/07 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
"序列点" 是什么
2016/07/29 面试题
Solaris操作系统的线程机制
2015/07/28 面试题
优秀毕业生推荐信范文
2014/03/07 职场文书
财务人员担保书
2014/05/13 职场文书
群众路线调研报告范文
2014/11/03 职场文书
初中信息技术教学计划
2015/01/22 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android