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 相关文章推荐
JQuery文本框高亮显示插件代码
Apr 02 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
Aug 14 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
jQuery+AJAX实现无刷新下拉加载更多
Jul 03 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
webpack手动配置React开发环境的步骤
Jul 02 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
webpack常用配置总览(小结)
Nov 18 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 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
php写的简易聊天室代码
2011/06/04 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
React全家桶环境搭建过程详解
2018/05/18 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
Python的高级Git库 Gittle
2014/09/22 Python
详解Django中的过滤器
2015/07/16 Python
Numpy中的mask的使用
2018/07/21 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
幼儿园户外活动总结
2014/07/04 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
电影雨中的树观后感
2015/06/15 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫