Node.js 使用异步方法递归创建文件夹目录结构

作者:服务小站

时间:2026-10-30

浏览:307

本文介绍在Node.js中如何利用fs模块的异步方法递归创建多级文件夹目录结构。通过深度优先搜索策略,结合fs.exists判断存在性及fs.mkdir创建目录,实现自动化目录构建。

文章目录

Node.js 异步创建文件夹概述

初次接触Node.js的文件系统时,其异步响应机制可能令人困惑。实际上,Node.js不仅提供同步方法来判断文件夹是否存在或创建文件夹,也支持通过异步方式实现相同功能。本文旨在演示如何使用异步方法完成这一任务。

实现该功能主要依赖以下两个核心API:

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();
    }
  });
}

首先,将需要创建的目录结构存储在一个数组中。实现逻辑主要采用深度优先搜索(DFS)的思想,递归的深度由数组的长度决定。

以上关于Node.js文件夹目录结构创建的实例代码分享完毕,希望能为读者提供参考,并欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章