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 function、指针及内置对象
Feb 19 Javascript
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
Dec 18 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
Aug 05 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
JavaScript实现联动菜单特效
Jan 07 Javascript
vue使用微信扫一扫功能的实现代码
Apr 11 Javascript
JavaScript中条件语句的优化技巧总结
Dec 04 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入门源程序
2006/10/09 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
Python实现文件复制删除
2016/04/19 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
python的unittest测试类代码实例
2017/12/07 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python中append实例用法总结
2019/07/30 Python
Python使用python-docx读写word文档
2019/08/26 Python
如何获取Python简单for循环索引
2019/11/21 Python
logging level级别介绍
2020/02/21 Python
如何基于线程池提升request模块效率
2020/04/18 Python
Python map及filter函数使用方法解析
2020/08/06 Python
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
校运会入场式解说词
2014/02/10 职场文书
自查自纠工作总结
2014/10/15 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js