(47)fs创建多级目录

一、fs创建多级目录说明

fs.mkdir('./a/b/c') 这样写可以不可以呢? 答案:不可以。

多级目录的创建方式:一般使用递归的方式进行创建。

如何操作?

先创建./a 再创建./a/b 最后创建./a/b/c

如果是删除操作,则反向执行

二、递归概述

程序调用自身的编程技巧成为递归(recursion),说白了就是自己调用自己,再本方法中不断调用自身方法,再合适的机会结束。还有个我们知道的小故事:从前有座山,山上有个庙,庙里有老和尚和小和尚,老和尚呢给小和尚讲故事,故事的内容是从前有座山,山上有个庙,庙里有个老和尚和小和尚。。。反反复复的一个小故事。我们应该都听过这个故事吧~递归其实就是这个样子的。

使用递归的前提条件:1.具有相同的实现逻辑(自己调用自己)2.具有明确的结束条件(防止死循环)

递归的优势:1.省思维:采用分治思想,只考虑一次逻辑实现。2.省代码:减少代码量,使程序更加简洁。

三、递归的实践—求阶乘

四、递归示例1

digui.js文件

function f(num) {
  if(num <= 1) {
    return 1;
  }
  return num * f(num - 1);
}
console.log(f(5));//120

 

五、递归示例2:实现fs创建多级目录

fs.js文件

var fs = require('fs')
var path = require('path');
//递归创建目录
function myMkdirSync (dirname) {
  if(fs.existsSync(dirname)) {
    return true;
  }else{
    //如果父级目录已经创建,然后才能创建子级目录
    if (myMkdirSync(path.dirname(dirname))){
      fs.mkdirSync(dirname);
      return true;
    }
  }
}
//第一次调用
//myMkdirSync('/a/b/c');
//第二次调用
//myMkdirSync('/a/b');
//第三次调用
myMkdirSync('a');
//第四次 目录存在,返回true
myMkdirSync('a/b/c');

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽哥ins

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值