nodejs文件工具
2021/7/22 22:10:38
本文主要是介绍nodejs文件工具,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// @ts-ignore const fs = require('fs'); // @ts-ignore const path = require('path'); // @ts-ignore export default class FileUtil { /** * 复制目录、子目录,及其中的文件 * @param {String} src 要复制的目录 * @param {String} dist 复制到目标目录 */ static copyDir(src, dist) { if (!fs.existsSync(dist)) { this.mkdirsSync(dist); //创建目录 } this.copy(src, dist); } /** * 递归创建目录 * @param {string} dirname 目录路径 */ static mkdirsSync(dirname) { if (fs.existsSync(dirname)) return true; if (this.mkdirsSync(path.dirname(dirname))) { fs.mkdirSync(dirname); return true; } } /** * 异步深度循环删除目录 * @param {string} path 需要删除的目录 */ static delDir(path) { if (!fs.existsSync(path)) return; const stats = fs.statSync(path); if (stats.isDirectory()) { const names = fs.readdirSync(path); for (const name of names) { this.delDir(path.join(path, name)); } fs.rmdirSync(path); } else if (stats.isFile()) { fs.unlinkSync(path); } } /** * 复制目录、子目录,及其中的文件 * @param {String} src 要复制的目录 * @param {String} dist 复制到目标目录 */ static copy(src, dist) { if (!fs.existsSync(src)) return; const stats = fs.statSync(src); if (stats.isDirectory()) { if (!fs.existsSync(dist)) fs.mkdirSync(dist); const names = fs.readdirSync(src); for (const name of names) { this.copy(path.join(src, name), path.join(dist, name)); } } else if (stats.isFile()) { fs.writeFileSync(dist, fs.readFileSync(src)); } } /** * 遍历文件/文件夹并执行函数 * @param {fs.PathLike} path 路径 * @param {(filePath: fs.PathLike, stat: fs.Stats)=>void} handler 处理函数 */ static map(path, handler) { if (!fs.existsSync(path)) return; const stats = fs.statSync(path); if (stats.isDirectory()) { const names = fs.readdirSync(path); for (const name of names) { this.map(path.join(path, name), handler); } } else if (stats.isFile()) { handler(path, stats); } } };
这篇关于nodejs文件工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04React 19 来了!新的编译器简直太棒了!
- 2025-01-032025年Node.js与PHP大比拼:挑选最适合的后端技术进行现代web开发
- 2025-01-03?? 用 Gemini API、Next.js 和 TailwindCSS 快速搭建 AI 推文生成项目 ??
- 2024-12-31Vue CLI多环境配置学习入门
- 2024-12-31Vue CLI学习入门:一步一步搭建你的第一个Vue项目
- 2024-12-31Vue3公共组件学习入门:从零开始搭建实用组件库
- 2024-12-31Vue3公共组件学习入门教程
- 2024-12-31Vue3学习入门:新手必读教程
- 2024-12-31Vue3学习入门:初学者必备指南
- 2024-12-30Vue CLI多环境配置教程:轻松入门指南