当前位置: 首页 > news >正文

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

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);
});
最后

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

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

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

 

http://www.lryc.cn/news/497962.html

相关文章:

  • 陈若尧新歌《一来二去》陆续登陆全球音乐平台
  • 【Docker】针对开发环境、测试环境、生产环境如何编排?
  • 小程序项目的基本组成结构
  • 001-mysql安装
  • 预训练模型与ChatGPT:自然语言处理的革新与前景
  • 高通---Camera调试流程及常见问题分析
  • 【冷冻电镜】RELION5.0使用教程总结
  • 【Maven系列】深入解析 Maven 镜像配置
  • 优质翻译在美国电子游戏推广中的作用
  • 数据结构---栈(Stack)
  • 【全网最新】若依管理系统基于SpringBoot的前后端分离版本开发环境配置
  • limit(0,10)和limit(10,10)有什么区别吗?
  • grpc与rpcx的区别
  • 基于XML的AOP开发
  • pdf也算是矢量图——pdf大小调整--福昕pdf
  • Web应用程序文件包含-Server2233-解析
  • AI开发: 知识图谱的初识,学会制作知识图谱- Python 机器学习
  • Ubuntu Linux用户与组的管理
  • 算力100问☞第32问:密集计算的关键技术有哪些?
  • Rust : 生成日历管理markdown文件的小工具
  • 【并集查询】.NET开源 ORM 框架 SqlSugar 系列
  • 基于单片机的智能农田灌溉节水系统设计及应用
  • jmeter如何导出中文版的测试报告?
  • AIGC 与艺术创作:变革与机遇
  • 【Axios】如何在Vue中使用Axios请求拦截器
  • element Plus中 el-table表头宽度自适应,不换行
  • 【Android】从事件分发开始:原理解析如何解决滑动冲突
  • 如何使用JDBC向数据库中插入日期数据???
  • 高频面试题(含笔试高频算法整理)基本总结回顾29
  • Flink日志配置