Node做一个自动删除指定文件和文件夹工具

发布于:2024-12-06 ⋅ 阅读:(55) ⋅ 点赞:(0)

node14+ 

可以搭配脚手架工具实现自动实现删除

// 引入path模块,用于处理文件路径
const path = require('path');
// 引入fs模块的promises API,用于异步文件操作
const fs2 = require('fs').promises;
// 引入fs模块,用于同步文件操作
const fs = require('fs');

/**
 * 异步删除文件夹函数
 * @param {string} folderPath - 要删除的文件夹路径
 */
async function deleteFolder(folderPath) {
  try {
    // 使用rmdir方法异步删除文件夹,设置{ recursive: true }以递归删除文件夹及其内容
    await fs2.rmdir(folderPath, { recursive: true });
    console.log(`成功删除文件夹: ${folderPath}`);
  } catch (err) {
    // 捕获错误
    if (err.code === 'ENOENT') {
      // 如果错误代码是ENOENT,表示文件夹不存在
      // 在我们的上下文中,这不是一个错误
      console.log(`文件夹不存在: ${folderPath},无需删除。`);
    } else {
      // 如果发生其他错误
      console.error(`删除文件夹时出错: ${folderPath}`, err);
    }
  }
}

/**
 * 主函数
 */
async function main() {
  // 要删除的文件夹名称数组
  const foldersToDelete = [
    'wps-addon-build',
    'wps-addon-publish'
  ];

  // 遍历要删除的文件夹数组
  for (const folder of foldersToDelete) {
    // 使用path.join方法将当前脚本所在目录与文件夹名称拼接成完整路径
    const fullPath = path.join(__dirname, folder);
    // 调用deleteFolder函数异步删除文件夹
    await deleteFolder(fullPath);
  }
  
  // 处理ZIP文件,与之前的方式相同
  // 使用path.join方法将当前脚本所在目录与ZIP文件名称拼接成完整路径
  const zipFilePath = path.join(__dirname, 'wps-addon-build.zip');
  // 使用fs.existsSync方法同步检查ZIP文件是否存在
  if (fs.existsSync(zipFilePath)) {
    try {
      // 如果ZIP文件存在,使用fs.unlinkSync方法同步删除文件
      fs.unlinkSync(zipFilePath);
      console.log('文件已成功删除(同步)');
    } catch (err) {
      // 捕获删除文件时的错误
      console.error('删除文件时出错(同步):', err);
    }
  } else {
    // 如果ZIP文件不存在
    console.log('ZIP文件不存在,无需删除。');
  }
}

// 调用主函数,并捕获可能发生的错误
main().catch(err => {
  console.error('主函数出错:', err);
});
最后

如果对您有帮助,希望能给个👍评论收藏三连!

想跟博主交朋友的可以通过查找,公_号❤:前端老实人,获取更多资料~。

博主为人老实,无偿解答问题,欢迎随时交流♥

 


网站公告

今日签到

点亮在社区的每一天
去签到

热门文章