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 相关文章推荐
JS查看对象功能代码
Apr 25 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
javascript数组去重方法分析
Dec 15 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
vuex入门最详细整理
Mar 04 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 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年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
JS设计模式之单例模式(一)
2017/09/29 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
vue-cli随机生成port源码的方法
2019/09/02 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
机关搬迁方案
2014/05/18 职场文书
英语课外活动总结
2014/08/27 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书