You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中删除子文件夹及内容但保留根目录文件

在Node.js中删除指定子文件夹并保留根目录文件

你可以直接使用Node.js内置的fs模块(结合path模块处理路径)来实现需求,无需额外安装第三方依赖。以下提供同步和异步两种实现方式:

同步实现(适合简单脚本场景)

同步方式代码直观、执行顺序明确,适合一次性执行的脚本场景:

const fs = require('fs');
const path = require('path');

// 定义目标根文件夹路径
const parentDir = path.join(__dirname, 'Parent');
// 要删除的子文件夹列表
const foldersToDelete = ['folder1', 'folder2'];

foldersToDelete.forEach(folderName => {
  const folderPath = path.join(parentDir, folderName);
  // 递归删除文件夹及其所有内容,force参数确保文件夹不存在时不报错
  fs.rmSync(folderPath, { recursive: true, force: true });
});

console.log('指定文件夹已成功删除');

异步实现(适合非阻塞场景)

如果你的应用需要非阻塞执行,推荐使用fs.promises的异步API:

const fs = require('fs').promises;
const path = require('path');

async function deleteTargetFolders() {
  const parentDir = path.join(__dirname, 'Parent');
  const foldersToDelete = ['folder1', 'folder2'];

  // 并行删除所有目标文件夹
  await Promise.all(
    foldersToDelete.map(folderName => {
      const folderPath = path.join(parentDir, folderName);
      return fs.rm(folderPath, { recursive: true, force: true });
    })
  );

  console.log('指定文件夹已成功删除');
}

// 执行函数并捕获错误
deleteTargetFolders().catch(err => console.error('删除过程出错:', err));

关键参数说明

  • recursive: true:允许递归删除文件夹及其内部的所有文件和子文件夹
  • force: true:当目标文件夹不存在时,不会抛出错误,避免脚本意外终止

内容的提问来源于stack exchange,提问作者wanderors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:20:58