fs读取目录、文件

fs读取文件

process.cwd() 是 Node.js 中的一个方法,它返回 Node.js 进程的当前工作目录。这个工作目录通常是启动 Node.js 进程时所在的目录。

const fs = require('fs');
const path = require('path');// 读取指定目录
const configPath = path.join(process.cwd(), 'config.json');
// const configPath = path.join(process.cwd(), 'src/config.json');
// 读取文件
const config = fs.readFileSync(configPath, 'utf-8');
console.log(config);

fs 读取目录

const fs = require('fs');
const path = require('path');// 指定要读取的目录路径
const directoryPath = './exampleDirectory';// 使用 fs.readdir() 读取目录
fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`读取目录时发生错误: ${err}`);return;}// 文件数组包含了目录中的所有文件和子目录files.forEach(file => {console.log(file);});
});// 异步/等待版本的读取目录
// (注意:此示例使用了 async/await,因此需要在异步函数中使用)
async function readDirectoryAsync() {try {const files = await fs.promises.readdir(directoryPath);files.forEach(file => {console.log(file);});} catch (err) {console.error(`异步读取目录时发生错误: ${err}`);}
}// 调用异步函数
readDirectoryAsync();

fs判断是否为文件夹

const fs = require('fs');const path = './example/folder'; // 要检查的路径fs.stat(path, (err, stats) => {if (err) {console.error('发生错误:', err);return;}if (stats.isDirectory()) {console.log('这是一个文件夹');} else {console.log('这不是一个文件夹');}
});

fs 获取文件名

const fs = require('fs');
const path = require('path');// 假设你有一个包含路径的文件名字符串
const filePath = '/example/directory/test.txt';// 使用 path.basename 获取文件名
const fileName = path.basename(filePath);console.log(fileName); // 输出: test.txt

获取文件扩展名

const path = require('path');// 假设你有一个包含路径的文件名字符串
const filePath = '/example/directory/牡蛎.txt';// 使用 path.extname 获取文件扩展名
const fileExtension = path.extname(filePath);console.log(fileExtension); // 输出: .txt

实践:

const fs = require('fs');
const path = require('path');// 使用 fs.readdir() 读取目录
const readdir = (directoryPath, isRoot) => fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`读取目录时发生错误: ${err}`);return;}// 文件数组包含了目录中的所有文件和子目录files.forEach(file => {const pPath = isRoot ? path.join(process.cwd(), `${directoryPath}/${file}`) : `${directoryPath}/${file}`;fs.stat(pPath, (err, stats) => {if (err) {console.error('发生错误:', err);return;}if (stats.isDirectory()) {console.log('文件夹:', pPath);readdir(pPath);} else {const readFile = fs.readFileSync(pPath, 'utf-8');console.log(`------>READ FILE ${pPath} START:<------\n`, readFile, `\n------>READ FILE ${pPath} END<------\n`);}})});
});readdir('./src', true);

运行脚本即可

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

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

相关文章

StarRocks实战——贝壳找房数仓实践

目录 前言 一、StarRocks在贝壳的应用现状 1.1 历史的数据分析架构 1.2 OLAP选型 1.2.1 离线场景 1.2.2 实时场景 1.2.3 StarRocks 的引入 二、StarRocks 在贝壳的分析实践 2.1 指标分析 2.2 实时业务 2.3 可视化分析 三、未来规划 3.1 StarRocks集群的稳定性 3…

PMP考试培训费用多少钱?

PMP考试的相关费用包括报名费用、培训费用和证书续证费用三个部分。 一、PMP考试报名费用&#xff1a; 首次报考费用为3900元&#xff0c;如果未通过考试可以在英文报名有效期内进行补考报名&#xff0c;补考费用为2500元。 付费方式是在项目管理学会官方网站上提交报考资料…

企业数字化转型的第一步:由被动多云向主动多云转变

随着经济环境、市场形势、技术发展、用户需求等诸多因素的变化&#xff0c;数字化转型为企业进一步提升效率和竞争力、提供更加丰富的个性化产品和服务、进行业务场景创新、探寻新的增长机会和运营模式提供了崭新的途径。越来越多的企业意识到&#xff0c;数字化转型已不是企业…

第1篇 Linux Docker安装rabbitmq

Docker安装RabbitMq 1、搜索rabbitmq镜像 docker search rabbitmq2、下载rabbitmq镜像 docker pull rabbitmq3、运行rabbitmq服务 docker run -d --name rabbitmq --restart always -p 15672:15672 -p 5672:5672 rabbitmq4、访问rabbitmq http://192.168.1.x:15672 5、rab…

亚信安慧AntDB:打破数据孤岛,实现实时处理

AntDB数据库以其独特的创新能力在分布式数据库领域引领潮流。其中&#xff0c;融合统一与实时处理是其两大核心创新能力&#xff0c;为其赢得广泛关注与赞誉。融合统一意味着AntDB能够将多种不同类型的数据库融合为一体&#xff0c;实现数据的统一管理与处理&#xff0c;极大地…

电视盒子什么品牌好?资深数码粉强推口碑电视盒子推荐

我对各类数码产品是非常熟悉的&#xff0c;尤其是电视盒子&#xff0c;用过超十五款了&#xff0c;涵盖了各个主流品牌&#xff0c;最近看到很多朋友在讨论不知道电视盒子什么品牌好&#xff0c;我这次要来分享的就是口碑最好的五款电视盒子推荐给各位不懂如何选电视盒子的新手…

AI、AIGC、AGI、ChatGPT它们的区别?

今天咱们聊点热门话题&#xff0c;来点科普时间——AI、AIGC、AGI和ChatGPT到底是啥&#xff1f;这几个词听起来好像挺神秘的&#xff0c;但其实它们就在我们生活中。让我们一起探索这些术语的奥秘&#xff01; AI&#xff08;人工智能&#xff09;&#xff1a;先说说AI&#…

数仓技术选型特点

高性能&#xff1a;用全并行的MPP架构数据库&#xff0c;业务数据被分散存储在多个节点上&#xff0c;数据分析任务被推送到数据所在位置就近执行&#xff0c;并行地完成大规模的数据处理工作&#xff0c;实现对数据处理的快速响应。 易扩展&#xff1a;Shared-Nothing开放架构…

电梯物联网之梯控相机方案-防止电瓶车进电梯

梯控现状 随着电梯产品在智能化建筑的日益普及,对于电梯的智能化管理 安全性需求 的要求越来越迫切。尤其今年来随着电瓶车的大量普及&#xff0c;发起多起楼道、轿厢电瓶车着火恶性事件&#xff0c; 造成了极大的社会 负面影响。控制电瓶车进入单元门&#xff0c;楼道以及电梯…

Vue官网“食用指南”

把Vue官网当做一个工具来用&#xff0c;有问题&#xff0c;先来官网查一查。 官网中常用的板块 官网&#xff1a;https://cn.vuejs.org/上手后&#xff0c;最常用的模块是【快速上手】【API】。所以务必要知道这两个模块在哪里&#xff0c;怎么使用。![image.png](https://img…

/proc/cpuinfo文件内容详解

/proc/cpuinfo 文件包含了有关系统 CPU 的信息&#xff0c;每一行代表一个属性及其对应的值。以下是一些常见的属性及其含义&#xff1a; 1. processor&#xff1a;表示 CPU 的物理编号&#xff0c;通常从 0 开始递增。 2. vendor_id&#xff1a;CPU 厂商的名称&#xff0c;如…

蓝桥杯 砝码称重 dp/dfs

题目链接&#xff1a; https://www.lanqiao.cn/problems/1447/learning/?subject_code1&group_code4&match_num12&match_flow1&origincup 思想&#xff1a;dfs暴力枚举过一半的分 代码&#xff1a; #include<bits/stdc.h> using namespace std;#def…

快速开发一个鸿蒙的页面

文章目录 前言常用组件快速开启简单的鸿蒙页面总结 一、前言 鸿蒙要想快速上手&#xff0c;那么就需要对基础的组件使用比较熟悉&#xff0c;这里就罗列开发中常见的基础组件的使用。 只要是写android的&#xff0c;对于这些组件的使用还是能很快上手的&#xff0c;只要多多…

01-prometheus监控系统-安装部署prometheus

一、准备环境 主机名ip配置prometheus-server3110.0.0.311核1g-20GBprometheus-server3210.0.0.311核1g-20GBprometheus-server3310.0.0.311核1g-20GB 二、下载/上传软件包 1&#xff0c;软件包地址 这里给大家准备了百度云盘的安装包&#xff1b; 链接&#xff1a;https:/…

FRM模型十二:极值理论

目录 极值理论介绍GEVPOT 代码实现 极值理论介绍 在风险管理中&#xff0c;将事件分为高频高损、高频低损、低频高损、低频低损。其中低频高损是一种非常棘手的损失事件&#xff0c;常出现在市场大跌、金融体系崩溃、金融危机以及自然灾害等事件中。 由于很难给极端事件一个准…

Spring 学习记录

Spring 学习记录 1. Spring和SpringFrameWork1.1 广义的Spring2.1 狭义的Spring2.3 SpringFrameWork / Spring框架图 2. Spring IOC容器(即上图中的Core Container)2.1 相关概念 (IOC DI 容器 组件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具体实现类 3. Spring IOC …

flask 数据库迁移报错 Error: No such command ‘db‘.

初学FLASK&#xff0c;使用pycharm的terminal 启动&#xff0c;实现数据库迁移 文件结构 项目启动文件不在一级目录pycharm>terminal启动 由于自己初入 python flask 很多东西并不懂&#xff0c;只能依葫芦画瓢&#xff0c;使用如下命令,输入完第一行命令执行没有任何错误…

素数合集(C语言版)

目录 判断素数函数 题目 素数个数 素数求和 最大的素数

微信小程序 ---- 慕尚花坊 购物车

购物车 01. 购物车-封装购物车接口 API 思路分析&#xff1a; 为了方便后续进行购物车模块的开发&#xff0c;我们在这一节将购物车所有的接口封装成接口 API 函数 落地代码&#xff1a; import http from ../utils/http/*** description 获取购物车列表数据* returns Pro…

Vue ElementUI 修改消息提示框样式—messageBox 的大小

在窄屏模式下&#xff08;移动端或pda&#xff09;&#xff0c;提示框的宽度太宽&#xff0c;会出现显示不完全的问题。 应当如何修改 ElementUI 的样式呢&#xff1f; open() {this.$confirm(window.vm.$i18n.t("tips.conLogOut"),window.vm.$i18n.t("tips.tip…