node笔记_生成自定义目录文件

news/2024/10/18 12:30:21/

文章目录

    • ⭐前言
    • ⭐node生成目录
      • 💖 mkdirSync创建目录
      • 💖 stat判断目录是否存在
      • 💖 mkdir创建目录
      • 💖 动态创建目录文件
    • ⭐结束

⭐前言

大家好!我是yma16,本文分享node生成自定义目录文件。
背景:
解决处理生成自定义文件时候没有指定目录的问题
效果:
create_auto

往期文章
node_windows环境变量配置
node_npm发布包
linux_配置node
node_nvm安装配置
node笔记_http服务搭建(渲染html、json)
node笔记_读文件
node笔记_写文件
node笔记_连接mysql实现crud
node笔记_formidable实现前后端联调的文件上传
node笔记_koa框架介绍
node_koa路由

⭐node生成目录

思路:

  1. 检查路径是否存在
  2. 不存在的路径深度遍历生成逐级目录

💖 mkdirSync创建目录

例子:
相对与js执行文件所在目录创建test的目录

fs.mkdirSync(path.join(__dirname, './test')); 

mkdirSync

💖 stat判断目录是否存在

fsPromises.stat(path[, options])

  • path <string> | <Buffer> | <URL>
    options <Object>
    bigint <boolean> 返回的 <fs.StatFs> 对象中的数值是否应为 bigint。 默认值: false。
    返回:<Promise> 使用给定的 path 的 <fs.StatFs> 对象履行。
fs.stat('./yma16', (err, stats) => {console.log(stats,'stats')if (err) {console.log('不存在')} else {console.log('存在')}
})

judge-dir

💖 mkdir创建目录

创建目录yma16

fs.mkdir('./yma16', err => {if (err) {console.log('创建失败')} else {console.log('创建成功')}
})

mkdir-dir

💖 动态创建目录文件

const fs = require('fs');
const path = require('path');/*** 读取路径信息* @param {string} path 路径*/
function getStat(path) {return new Promise((resolve, reject) => {fs.stat(path, (err, stats) => {if (err) {resolve(false);} else {resolve(stats);}})})
}/*** 创建路径* @param {string} dir 路径*/
function mkdir(dir) {return new Promise((resolve, reject) => {fs.mkdir(dir, err => {if (err) {resolve(false);} else {resolve(true);}})})
}/*** 路径是否存在,不存在则创建* @param {string} dir 路径*/
async function dirExists(dir) {let isExists = await getStat(dir);//路径存在是目录if (isExists && isExists.isDirectory()) {return true;} else if (isExists) {// 文件return false;}//拿到上级路径let tempDir = path.parse(dir).dir;//递归判断,如果上级目录也不存在,则会代码会在此处继续循环执行,直到目录存在let status = await dirExists(tempDir);let mkdirStatus;if (status) {mkdirStatus = await mkdir(dir);}return mkdirStatus;
}async function createFile() {for(let i=0;i<10;++i){let baseDir='./base'+'/'+iawait dirExists(baseDir);const jsonContent = {name: 'yma16'}const jsonContentStr = JSON.stringify(jsonContent, null, '\t')fs.writeFile(baseDir + '/a.json', jsonContentStr, err => {if (err) return console.log(err);console.log('写入json成功')})}
}createFile()

创建目录成功!
create-file

⭐结束

感谢你的阅读,如有不足或者错误欢迎指出!
sky-moon


http://www.ppmy.cn/news/205457.html

相关文章

索尼CCD和CMOS图像传感器

我司主营CCD和CMOS图像传感器&#xff0c;主要品牌SONY和长光辰芯&#xff01; 以下型号长期备有现货&#xff1a; CCD&#xff1a;ICX259AK-7、ICX655AQA-A、ICX825AL-F、ICX205AL-A、ICX285AL-F、ICX429AKL-7、ICX429ALL-7、 ICX618ALA-7、ICX674ALG. CMOS:IMX183CQJ-C、IMX…

xzp 线刷 android 10,索尼Xperia XZ刷机教程_Sony XZ强刷官方FTF系统包

在这里来说一下有关索尼Xperia XZ的强刷教程了&#xff0c;这个强刷教程主要就是针对官方的FTF格式的强刷包来操作的&#xff0c;因为之前看到有机友把官方的rom强刷包下载下来之后不知道如何刷入&#xff0c;所以在这里整理了一下详细的强刷教程供大家参考一下了&#xff0c;这…

六、JSP06 使用 EL 和 JSTL 简化 JSP

六、使用 EL 和 JSTL 简化 JSP 6.1 使用 EL 表达式 EL 表达式借鉴了 JavaScript 和 XPath 的表达式语言 EL 表达式提供了一种在 JSP 中简化表达式的方法 EL 表达式通常用于在某个作用域 {page、request、session、application等} 内取得属性值 6.1.1 使用 EL 表达式 EL 表达式…

探索瑞芯微RKNanoD芯片获索尼音箱,采用无线连接稳定无延迟

索尼在音频行业的成就相信大家都有目共睹&#xff0c;索尼HT-Z9F音响系统是持续热卖的产品&#xff0c;这套音响系统由一个中置回音壁以及一个重低音音箱组成&#xff0c;搭配“VERTICAL SURROUND ENGINE垂直环绕引擎”可以让用户感受到声音的竖向变化从而带来更加沉浸的观影体…

在 Ubuntu 20.04 上安装 Nginx

保证以 sudo 用户身份登录&#xff0c;并且你不能运行 Apache 或者 其他处理进程在80端口和443端口。 安装 Nginx Nginx 在默认的 Ubuntu 源仓库中可用。想要安装它&#xff0c;运行下面的命令&#xff1a; sudo apt update sudo apt install nginx 一旦安装完成&#xff0…

H3C无线控制器支持的认证方式

Portal 认证MAC 认证801.2X 认证PSK 认证PPPOE 认证

H3C 无线控制器+瘦ap 配置

1.开启自动ap功能 wlan auto-ap enable2.配置无线口WLAN-ESS1 interface WLAN-ESS5 undo port hybrid vlan 1 //禁止VLAN1 port hybrid pvid vlan 188 mac-vlan enable port-security port-mode psk port-security tx-key-type 11key port-security preshared-key pass-phr…

H3C无线资料

配置案例在附件&#xff0c;无线一本通如以下连接&#xff1a; H3C WX3500H系列多业务无线控制器-新华三集团-H3C 通过以下连接进入控制器的版本说明书&#xff1a; H3C WX3500H无线控制器系列-新华三集团-H3C 官网软件下载公共账号密码&#xff1a;账号&#xff1a;yx800 密…