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操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
JS实现的系统调色板完整实例
Dec 21 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
fullCalendar中文API官方文档
Feb 07 Javascript
js获取当前周、上一周、下一周日期
Mar 19 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
May 01 Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 Javascript
JS实现简单省市二级联动
Nov 27 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
php中数据的批量导入(csv文件)
2006/10/09 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
javascript第一课
2007/02/27 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
ES2020 新特性(种草)
2020/01/12 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python编程之微信推送模板消息功能示例
2017/08/21 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
pycharm 安装JPype的教程
2019/08/08 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
大学毕业感言50字
2014/02/07 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
运动会通讯稿50字
2015/07/20 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
Python进程间的通信之语法学习
2022/04/11 Python
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技