nodejs里面的所有文件操作我们很显然地都会选择异步方式。

nodejs对于文件的基本操作果然是很基本的。例如我们想创建一个二级目录:/abc/def,使用fs.mkdir必须先判断/abc,存在,才继续创建/abc/def。这样几个一层层的callback,必要会影响代码的美观性(^_^,写代码也是一门艺术)。 于是乎有了一下通过递归对fs.mkdir和path.exists的封装,得到的目录创建 辅助函数:mkdirs

// 创建所有目录
var mkdirs = module.exports.mkdirs = function(dirpath, mode, callback) {path.exists(dirpath, function(exists) {if(exists) {callback(dirpath);} else {//尝试创建父目录,然后再创建当前目录mkdirs(path.dirname(dirpath), mode, function(){fs.mkdir(dirpath, mode, callback);});}});
};

看,是不是漂亮了许多?

有爱

^_^,希望文本对你有用。

转载于:https://www.cnblogs.com/fengmk2/archive/2011/03/10/nodejs-mkdirs.html

nodejs: mkdirs 递归创建目录相关推荐

  1. Java 递归创建目录

    使用 File 类的 mkdirs() 实现递归创建目录 完整代码 import java.io.File;public class Main {public static void main(Str ...

  2. Java 目录操作一(递归创建目录、删除目录、判断目录是否为空、判断文件是否隐藏、获取目录大小、在指定目录中查找文件)

    递归创建目录 import java.io.File;public class Main {public static void main(String[] args) {String directo ...

  3. lua中清空目录和递归创建目录

    lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下 os.execute("mkd ...

  4. php 递归创建目录、递归删除非空目录、迭代创建目录

    递归创建目录 方法一 1 function mk_dir($path){ 2 if(is_dir($path)){ //参数本身是一个目录 3 return true; 4 } 5 6 if(is_d ...

  5. linux C传入路径递归创建目录和文件接口实现

    本文封装了C 传入路径递归创建目录和文件接口实现,文末有提供示例代码: eg:传入./dir1/dir2/dir3/dir4/file0 可自动在当前目录创建dir1/dir2/dir3/dir4/四 ...

  6. python递归创建目录

    os.mkdir()可以创建指定的目录,但如果其上一级目录不存在,则无法创建成功. os.makedirs()则可以实现递归创建目录的功能.

  7. python递归创建目录_Node.js和Python使用递归查看目录文件和创建目录

    1. 查看目录文件: 1.1 Node实现: let fs = require('fs'); let path = require('path'); let filePath = path.resol ...

  8. java mkdirs linux_Java创建目录和多级目录

    error:linux报错没有那个文件或目录 一.Java创建目录(mkdir) 创建单层级目录.可以用于linux服务器. import java.io.File;public static voi ...

  9. mkdirp——递归创建目录及其子目录

    如果要创建目录A并创建目录A的子目录B,没有用-p参数的情况下mkdir会逐个创建目录(mkdir A; mkdir A/B); 加上参数-p就可以直接创建2个目录mkdir -p A/B( 如果目录 ...

最新文章

  1. 生信小白的福音——免费在线分析扩增子数据SILVAngs
  2. Linux Shell下”/dev/null 21“相关知识说明
  3. jQuery使用(十五):when()方法的使用
  4. java将HTML文件转化为pdf文件,如何使用Java将HTML网页转换为PDF文件
  5. 你知道应聘上一份机器学习的工作需要哪些条件吗?
  6. Flink之Watermark滑动窗口案例
  7. JavaScript中this指针的绑定规则
  8. Linux printf()占位符
  9. ImportError: cannot import name ‘abs‘
  10. 信号与系统思维导图框图(更新)
  11. Canvas API 详解
  12. 【毕业设计】 基于STM32的人体红外测温枪温度采集系统
  13. 牛顿莱布尼茨计算机公式,牛顿莱布尼茨公式
  14. littleVGL总结
  15. CSS限制字数,超出部份显示点点点...
  16. 经典电影台词系列【3】——无间道
  17. untiy 移除一个组件
  18. python内存持续增长_Python 进程内存增长解决方案
  19. git代码库pull报错:error: Your local changes to the following files would be overwritten by merge
  20. 人月神话(一)The Mythical Man-Month

热门文章

  1. Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。
  2. 2 文件处理、权限管理、搜索
  3. 打包 压缩 命令tar zip
  4. 云计算技术的跃进睿云智合专业先进水平
  5. 锐捷亮相GITC:请互联网企业为我点个赞!
  6. iis下php 500错误
  7. 期待flash三剑客
  8. leetcode459. 重复的子字符串
  9. leetcode1254. 统计封闭岛屿的数目(dfs)
  10. 网络安全习惯_健康习惯,确保良好的网络安全