【前端知识】Node——使用fs模块对文件、文件夹的操作

一、fs的三种读取文件内容的方式

const fs = require('fs');// 1.同步读取
const res1 = fs.readFileSync('../test.txt', {encoding: 'utf-8'
});
console.log(res1);// 2.异步读取:回调函数
fs.readFile('../test.txt', {encoding: 'utf-8'
}, (err, data) => {if(err){console.log('error message:', err);return;}console.log('读取文件结果:', data);
})// 3.异步读取:Promise
fs.promises.readFile('../test.txt', {encoding: 'utf-8'
}).then(res => {console.log(res);
}).catch(err => {console.log(err);
})

二、fs获取文件标识符

const fs = require('fs');fs.open('../test.txt', (err, fd) => {if(err){console.log(err);return false;}// 1.获取文件标识符fdconsole.log(fd);// 2.读取文件信息fs.fstat(fd, (err, stats) => {if(err){console.log(err);return false;}console.log(stats);})// 3.关闭文件fs.close(fd);
})

三、fs文件写入及选项参数

const fs = require('fs');// 1.客户端传递文本
const text = 'hello node!';// 2.文件的写入
fs.writeFile('../abc.txt', text, {encoding: 'utf-8',flag: 'w'
}, (err) => {if(err){console.log(err);return;}console.log('write succes!');
})
// 3.文件的追加写入
fs.writeFile('../abc.txt', text, {encoding: 'utf-8',flag: 'a'
}, (err) => {if(err){console.log(err);return;}console.log('append succes!');
})

四、fs对文件夹进行相关操作

const fs = require('fs');// 1.创建文件夹
fs.mkdir('./test-dir', (err => {console.log(err);
}));// 2.读取文件夹,获取其中文件的字符串
fs.readdir('./test-dir', (err, files) => {if(err){console.log(err);return;}console.log(files);
})// 3.读取文件夹,获取其中文件的信息
fs.readdir('./test-dir', { withFileTypes: true, }, (err, files) => {if(err){console.log(err);return;}console.log(files);files.forEach(f => {if(f.isDirectory()){console.log(`这是一个文件夹,名称为:${f.name}`);}else{console.log(`这是一个文件,名称为:${f.name}`);}})
})// 4.递归读取文件夹中所有文件
function readDirectory(path){fs.readdir(path, {withFileTypes: true}, (err, files) => {files.forEach(f => {if(f.isDirectory()){readDirectory(`${path}/${f.name}`)}else{console.log(`这是一个文件,名称为:${f.name}`);}})})
}
// readDirectory('./test-dir')// 5.对文件、文件夹重命名
fs.rename('./test-dir', 'test-dir-1', (err) => {console.log(err);
})

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

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

相关文章

二十三种设计模式全面解析-深入解析模板方法模式的奇妙世界

在软件设计的奇妙宇宙中,有一种设计模式如一颗流星般划过,留下绚丽的光芒,它就是——模板方法模式(Template Method Pattern)。这个模式不仅令代码更加灵活,而且蕴含了一种设计哲学,本文将深入研…

最大子段和(分治法+动态规划法)

求最大子段和 此类问题通常是求数列中连续子段和的最大值,经典的股票问题就是考察的这个思想及拓展。 例题: AcWing:1054. 股票买卖 Leetcode:53. 最大子数组和 分治法O(nlogn) 此类问题时分适合采用分治思想,因为所有子区间 [ s t a r t …

要事第一:如何通过6个步骤确定项目的优先级

当收到很多项目请求并且每个请求都是重中之重时,该怎么办?从最易完成的开始?还是先解决最大的问题? 实际上两种做法都不对。确定项目优先级的更好方法是评估以下内容,而不是关注项目规模或完成时长: ● 每…

【计算机网络】P2 性能指标

性能指标 性能指标1 - 速率性能指标2 - 带宽性能指标3 - 吞吐量性能指标4 - 时延性能指标5 - 时延带宽积性能指标6 - 往返时延 RTT性能指标7 - 利用率 性能指标1 - 速率 速率,即数据率,或称数据传输率或比特率,指连接在计算机网络上的主机在…

DBeaver连接本地MySQL

原文: DBeaver21.3.0安装与连接本地MySQL_dbeaver创建本地数据库_傅大胖的博客-CSDN博客 其他: mysql 的驱动下载地址: Central Repository: mysql/mysql-connector-java ​​​​​​​

二十三种设计模式全面解析-职责链模式的高级应用-日志记录系统

在软件开发领域,职责链模式(Chain of Responsibility Pattern)是一种强大而灵活的设计模式,它能够将请求的发送者和接收者解耦,提高代码的灵活性和可维护性。本文将深入探讨职责链模式的优点和缺点,并提供更…

学习Opencv(蝴蝶书/C++)代码——2.OpenCV初探

文章目录 0. 图像读取与显示1. 视频文件读取与操作1.1 示例代码1.1 OpenCV支持的视频格式2. 加入滑动条2.1 示例代码2.2 报错/Warning2.3 关于toolbar3. 简易视频播放器3.1 OpenCV检测方向键被按下3.1.1 Windows下3.1.2 linux下3.1 方向键控制视频变化4. 简单的变换5. 写视频5.…

三相异步电机动态数学模型及矢量控制仿真

文章目录 三相异步电机动态数学模型及矢量控制仿真1、异步电机三相方程2、坐标变换3、磁链3/2变换推导4、两相静止坐标系下的方程5、两相旋转坐标系下的方程6、以 ω-is-Ψr 为状态变量的状态方程7、矢量控制及 matlab 仿真 原文链接需要仿真的同学请关注【Qin的学习营地】 三相…

JMeter基础

JMeter工具基础使用 JMeter的三个重要组件线程组HTTP请求查看结果树 JMeter参数化用户定义的变量用户参数CSV数据文件设置函数四种参数化方式的不同 JMeter断言JMeter关联正则表达式XPath提取器JSON提取器 JMeter属性JMeter录制脚本JMeter直连数据库JMeter逻辑控制器JMeter定时…

百云齐鲁 | 云轴科技ZStack成功实践精选(山东)

山东省作为我国重要的工业基地和北方地区经济发展的战略支点,在“十四五”规划中将数字强省建设分为数字基础设施、数字科技、数字经济、数字政府、数字社会、数字生态六大部分,涵盖政治、经济、民生等多个方面,并将大数据、云计算、人工智能…

【错误记录】Uncaught TypeError: m.nodeName.toLowerCase is not a function

描述:在控制台输出上述错误~ 原因:在页面中,使用jQuery 开发时,命名不能和jQuery一起方法属性冲突,比如这里的nodeName,这里换一个不冲突的名字,就解决问题了。

统一身份认证平台之SSO建设

前言 上篇说道Passwordless无密码技术,也提到了数字时代密码管理的难度,其实在日常的生活中,很多用户也会因为忘记某些网站的登录密码而烦恼。为了方便记忆,很多人都在不同的站点使用相同的用户名和密码,虽然也可以减少…

uvm环境获取系统时间的方法和使用案例

背景: 有时候我们想统计一下验证环境中某个步骤总共花费了多少时间,有什么比较方便的方法呢,利用$realtime理论上也是能做到的,不过这个和timescale绑定起来了,需要手动换算成单位是秒的数,现在提供一种利用…

未来之路:互联网技术驱动汽车行业的创新浪潮

在互联网迅猛发展的今天,它的触角已延伸至各行各业,其中最引人注目的莫过于汽车行业。随着互联网技术的融合,汽车正变得越来越智能,预示着一场关于出行方式的革命。 首先,自动驾驶技术的发展正日益成熟。依托先进的传感…

josef约瑟 闭锁继电器 LB-7DG 100V 50HZ 导轨安装

LB-7型闭锁继电器 闭锁继电器LB-7导轨安装 一、用途 LB-7型闭锁继电器(以下简称继电器)用于发电厂及变电所内高压母线带电时防止和接地刀闸。 二、结构和工作原理 1、继电器按整流式原理构成,该继电器由变压器、电阻器、整流桥、滤波电容、极化继电器及指示灯组…

新人报到

文章目录 自我介绍博客平台写一些什么?为什么写博客? 自我介绍 计算机硕士研究生在读(研二),研究方向为神经网络模型量化、模型部署、深度学习和计算机视觉等。 博客平台 CSDN:_leoatliang 2022年5月12…

【C++初阶】STL详解(四)vector的模拟实现

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

Looking up a deactivated widget‘s ancestor is unsafe

背景: showCupertinoModalPopup中使用Navigator.of(context).pushNamedAndRemoveUntil(RouteName.login, (route) > false); 报错:Looking up a deactivated widget’s ancestor is unsafe 解决方案:先将CupertinoModal关闭,再…

使用Lychee搭建个人图片存储系统并进行远程访问设置实现公网访问本地私人图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…

esbuild打包

esbuild官网 npm install esbuild此命令应该会将 esbuild 安装到你本地的 node_modules 中。 你可以运行如下命令,来检测 esbuild 的原生可执行文件 是否正常: .\node_modules\.bin\esbuild --version这是一个简易的真实案例,用于说明 esbu…