一、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');