node笔记_读取目录的文件

news2024/12/24 8:50:12

文章目录

    • ⭐前言
    • ⭐fs.readdirSync
      • 💖 读取目录 不加withFileTypes
      • 💖 读取目录 加withFileTypes
      • 💖 读取目录时 判断元素文件还是目录
    • ⭐结束

⭐前言

大家好,我是yma16,本文分享关于node读取目录文件
往期文章
node_windows环境变量配置
node_npm发布包
linux_配置node
node_nvm安装配置
node笔记_http服务搭建(渲染html、json)
node笔记_读文件
node笔记_写文件
node笔记_连接mysql实现crud
node笔记_formidable实现前后端联调的文件上传
node笔记_koa框架介绍
node_koa路由
node_生成目录
node_读写excel

⭐fs.readdirSync

读取目录内容

参数

  • path <string> | <Buffer> | <URL>
  • options <string> | <Object>
  • encoding <string> 默认值: 'utf8'
  • withFileTypes <boolean> 默认值: false
    返回: <string[]> | <Buffer[]> | <fs.Dirent[]>

💖 读取目录 不加withFileTypes

示例目录如图:
read-dir
readdirSync读取 demo目录

const fs=require('fs')
let files = fs.readdirSync('./demo');
console.log(files)

结果
run-node
返回的是字符串数组

💖 读取目录 加withFileTypes

const fs=require('fs')
let files = fs.readdirSync('./demo',{withFileTypes:true});
console.log(files)

返回的是对象数组

  • name 名字
  • Symbol(type) 类型 <fs.Dirent>对象
    read-dir

💖 读取目录时 判断元素文件还是目录

fs.statSync(path[, options])

  • path <string> | <Buffer> | <URL>
  • options <Object>
  • bigint <boolean> 返回的 <fs.Stats> 对象中的数值是否应为 bigint。 默认值: false。
  • throwIfNoEntry <boolean> 如果文件系统条目不存在,是否会抛出异常,而不是返回 undefined。 默认值: true。
    返回: <fs.Stats>
    boolean返回判断类型

isFile() 是文件
isDirectory() 是目录

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

function getDirFiles(getPath) {
	let filesArray = [];

	function findJsonFile(propPath) {
		let files = fs.readdirSync(propPath, {
			withFileTypes: true
		});
		files.forEach(function(item, index) {
			let fPath = path.join(propPath, item.name);
			let stat = fs.statSync(fPath);
			if (stat.isDirectory() === true) {
				// 递归目录
				findJsonFile(fPath);
			}
			if (stat.isFile() === true) {
				filesArray.push(fPath);
				const data=fs.readFileSync(fPath,'utf-8')
				console.log(data)
			}
		});
	}
	findJsonFile(getPath);
	console.log(filesArray);
}

getDirFiles('./demo')

运行结果如下:
run-code

⭐结束

本文分享读取目录文件结束
💖感谢你的阅读 💖
如有错误或者不足欢迎指出!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java】Jconsole 开启远程连接遇到的一些坑

文章目录 背景一、JMX二、配置远程连接2.1、Java 程序启动2.2、tomcat 启动2.3、无法远程问题排查2.4、解决方案 三、关闭 tomcat 报错3.1、问题分析3.2、问题解决 总结 背景 最近在学习 JVM&#xff0c;其中涉及到性能、内存等指标分析需要使用工具分享&#xff0c;Java 提供…

dvwa靶场通关(六)

第六关&#xff1a;Insecure CAPTCHA&#xff08;不安全的验证码&#xff09; 不安全的验证码&#xff1f;不是这个意思&#xff0c;而是指验证码验证可以被绕过。怎么绕&#xff1f;一般都是验证码的验证和最终修改的验证分离&#xff0c;导致了中间过程&#xff08;验证码的…

io.netty学习(八)零拷贝原理

目录 零拷贝 传统I/O操作存在的性能问题 零拷贝技术原理 虚拟内存 mmap/write 方式 sendfile 方式 带有 scatter/gather 的 sendfile方式 splice 方式 总结 io.netty学习使用汇总 零拷贝 零拷贝&#xff08;Zero-Copy&#xff09;是一种 I/O 操作优化技术&#xff0c…

总结906

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日规划 今日已做&#xff1a; 1.回环背诵…

chatgpt赋能python:Python捕捉按键:探索基础和应用

Python捕捉按键&#xff1a;探索基础和应用 Python作为高级编程语言&#xff0c;可以用于各种任务&#xff0c;例如数据分析、机器学习、图形用户界面等等。其中&#xff0c;捕捉用户键盘输入是一个常见的任务&#xff0c;它可以用于实现简单的游戏、命令行应用和用户交互&…

Redis持久化说明及其单台Linux服务器搭建Redis集群架构

一.Redis持久化方式 1.1 RDB快照 说明&#xff1a;RDB快照主要以二进制文件的形式进行存储数据&#xff0c;主要以文件名dump.rdb进行存储&#xff0c;主要设置redis.conf里面设置’save 60 1000’命令可以开启&#xff0c; 表示在60秒内操作1000次进行一次备份数据。在客户端…

《网络安全0-100》网络安全工具

网络安全工具 抓包工具 抓包工具是网络安全领域中常用的一种工具&#xff0c;用于捕获和分析网络数据包&#xff0c;帮助用户了解网络流量、发现网络攻击和漏洞等问题。以下是几个常用的抓包工具&#xff1a; Wireshark&#xff1a;Wireshark是一种开放源代码的网络协议分析工…

软考A计划-系统集成项目管理工程师-信息化知识(五)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

Unity核心6——Animation

一、动画窗口 ​ 通过 Window --> Animation --> Animation 打开 Animation 窗口 ​ Animation窗口主要用于在 Unity 内部创建和修改动画&#xff0c;所有在场景中的对象都可以通过 Animation 窗口为其制作动画 ​ 原理&#xff1a; ​ 制作动画时&#xff1a;记录在…

chatgpt赋能python:Python提供的68个内置函数:一个全面的指南

Python提供的68个内置函数&#xff1a;一个全面的指南 Python是一种强大的编程语言&#xff0c;具有出色的生态系统和强大的功能。它提供了许多内置函数&#xff0c;这些函数可以使你的编程任务变得更加容易和高效。本篇文章将介绍Python提供的68个内置函数&#xff0c;帮助你…

chatgpt赋能python:Python排版快捷键:提高效率的必备技能

Python排版快捷键&#xff1a;提高效率的必备技能 随着Python编程语言的广泛应用&#xff0c;作为开发者&#xff0c;我们不仅需要注重代码质量&#xff0c;还需要注重代码的可读性。在编写Python代码时&#xff0c;排版也是一项重要的任务。好的排版不仅使代码更易于理解&…

k8s日志收集组件 Grafana loki --- 理论篇

当我们在k8s上运行程序时&#xff0c;习惯的会使用ELK来收集和查询程序运行日志。今天我们介绍一款新的专为日志收集而生的神器&#xff1a;Grafana loki。Grafana Loki 是一组组件&#xff0c;可以组合成一个功能齐全的日志堆栈。 与其他日志记录系统不同&#xff0c;Loki 仅…

VUE 2X 数据代理 ④

目录 文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持✨ V u e j s Vuejs Vuejs数据代理 什么是数据代理❓ 代理底层~ D e f i n e P r o p e r y DefinePropery DefinePropery V u e Vue Vue数据代理原理理解总结 文章有误…

Xubuntu22.04之便签工具(一百八十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

三、Kafka的消费全流程

Kafka的消费全流程 我们接着继续去理解最后这条消息是如何被消费者消费掉的。其中最核心的有以下内容。 1、多线程安全问题 2、群组协调 3、分区再均衡 多线程安全问题 当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就称这个类是线…

深度学习实战39-U-Net模型在医学影像识别分割上的应用技巧,以细胞核分割任务为例

大家好,我是微学AI,今天给大家介绍一下深度学习实战39-U-Net模型在医学影像识别分割上的应用技巧,以细胞核分割任务为例。本文将介绍在医学影像分割领域中应用U-Net模型的方法。我们将从U-Net模型原理出发,并使用PyTorch搭建模型,详细展示模型代码。接着,我们将展示一些医…

I.MX RT1170之FlexSPI(2):LUT表格的组成和FlexSPI结构体配置

从上一节FlexSPI的框图中可知&#xff0c;SEQ_CTL实现了对外部存储器的时序控制。不同的存储器有着不同的时序&#xff0c;这个时序就是由LUT(Look Up Table)指定的。LUT有它自己的寄存器&#xff0c;当我们设置好之后&#xff0c;外部存储器的读、写和擦除等操作就会根据LUT寄…

《网络安全0-100》安全事件案例

网络安全事件案例分析 2017年Equifax数据泄露事件 Equifax是美国一家信用评级机构&#xff0c;2017年9月&#xff0c;该公司披露发生了一起重大的数据泄露事件&#xff0c;涉及1.43亿美国人的个人信息&#xff0c;包括姓名、出生日期、社会安全号码等敏感信息。经过调查&#…

《OpenCV 计算机视觉编程攻略》学习笔记(一:图像编程入门)

1、参考引用 OpenCV 计算机视觉编程攻略&#xff08;第3版&#xff09;本书结合 C 和 OpenCV 3.2 全面讲解计算机视觉编程所有代码均在 Ubuntu 系统中用 g 编译执行 0. 安装 OpenCV 库 在Ubuntu上安装OpenCV及使用OpenCV 库分为多个模块&#xff0c;常见模块如下 opencv_core …

Python数据可视化 - 使用Python dash搭建交互式地图可视化看板

1.前言 前几年刚接触Dash库的时候&#xff0c;Dash生态还不太成熟&#xff0c;做些简单的web还行&#xff0c;复杂的、系统性还是得用flask或django来实现。随着这两年dash的不断迭代更新&#xff0c;以及dash大佬feffery相继开发了feffery_antd_components、feffery_leaflet_…