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中定义类的方法详解
Feb 10 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
Jquery表单验证失败后不提交的解决方法
Oct 18 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
关于定制FileField中的上传文件名称问题
Aug 22 Javascript
微信小程序实现animation动画
Jan 26 Javascript
深入理解JS异步编程-Promise
Jun 03 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 Javascript
微信小程序跨页面传递data数据方法解析
Dec 13 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
新版PHP极大的增强功能和性能
2006/10/09 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python验证企业工商注册码
2015/10/25 Python
Python之re操作方法(详解)
2017/06/14 Python
python使用opencv读取图片的实例
2017/08/17 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
应届毕业生自荐信例文
2014/02/26 职场文书
工程项目建议书范文
2014/03/12 职场文书
圣诞晚会主持词
2015/07/01 职场文书
活动新闻稿范文
2015/07/17 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python