Node.js 处理 File
Node.js 处理 File
对于 file 的理解,此处
fs 模块
Node.js 提供了处理文件系统的内置模块:fs
模块,该名称是 file system 的缩写
内置意味着你无需从 npm 进行安装
可以使用 fs 模块对文件和目录执行多种操作
fs 模块具有 promises 命名空间,该命名空间具有所有方法的 promise 版本
这是使用 fs 模块的首选方法,它可避免回调发生混乱或避免阻止同步方法,让你可以使用 async
const fs = require("fs").promises;
对 fs 模块执行的大多数操作都有同步和异步选项
常规使用
列出目录中的内容
可以使用
readdir
方法或readdirasync
方法const items = await fs.readdir("stores"); // await 属于同步和异步编程的内容【建议自行查看】,stores 是路径【建议相对路径】
console.log(items); // 列表形式输出目录中的内容,每个 item 是 Dirent 对象
判断文件目录,使用
Dirent
对象具有isFile
和isDirectory
方法
运用递归遍历目录树
/**
* findFiles(folderName) 递归遍历目录树
*
* folderName 目录路径
*/
function findFiles(folderName) {
const items = await fs.readdir(folderName, { withFileTypes: true }); // 获取目录中的元素
// 用 forEach 遍历 items
items.forEach((item) => {
if (item.isDirectory()) { // item.isDirectory() 递归条件【出口】
findFiles(`${folderName}/${item.name}`); // 递归调用
} else {
console.log(`Found file: ${item.name} in folder: ${folderName}`);
}
});
}
创建文件和目录
可使用 fs 模块以编程方式创建、删除、复制、移动和操作系统上的文件和目录
- 创建目录 mkdir 方法,注意如果尝试创建的目录已存在将引发错误
- 创建文件使用 fs.writeFile() 方法来创建文件,如果此文件已存在则会将其覆盖
读写文件
- 从文件读取数据 fs.readFile() 方法读取文件,返回对象是一个 Buffer 对象
- 要将数据写入文件,请使用相同的 writeFile 方法,不同的是应传入要作为第三个参数写入的数据
- 将数据追加到文件,可以将标志
a
传递到 writeFile 方法来执行此操作
分析文件中的数据,JavaScript 包含用于 JSON 文件的内置分析程序,JSON.parse()
方法可以实现此目的
// 在当前目录添加 totals.txt,每次使用追加 'Hello '
await fs.writeFile(
path.join(__dirname, "totals.txt"), // __dirname 一个全局常量,下面有简介
'Hello ',
{ flag: "a" }
);
path 模块
在 Node.js 内置模块中 path
模块专用于处理路径
- 拼接路径
path.join()
方法,意义增强移植性应对不同操作系统的目录分隔符 - 确定文件扩展名
path.extname()
path.parse()
获取有关路径或文件的大多数所需信息,包含你所在的当前目录、文件的名称、文件扩展名,甚至是不带扩展名的文件名称
Node.js 内置常量
- 确认当前目录完整路径通过内置常量
__dirname
- 确认当前文件完整路径通过内置常量
__filename
Node.js 处理 File的更多相关文章
- node.js的File模块
1.Node.js是什么? (1) Nodejs是为了开发高性能的服务器而诞生的一种技术 (2) 简单的说 Node.js 就是运行在服务端的 JavaScript,基于V8进行运行 (3) Node ...
- node.js & fs & file read & file write
node.js & fs & file read & file write https://nodejs.org/api/fs.html const fs = require( ...
- node.js & create file
node.js & create file node js create file if not exists https://nodejs.org/api/fs.html#fs_fs_ope ...
- [Node.js] 使用File API 异步上传文件
原文地址:http://www.moye.me/2014/11/05/html5-filereader/ 最近在做一个网盘的项目,不出意外的涉及到大文件的上传,那么问题来了:如何实时的显示文件上传的进 ...
- Node.js学习 - File Operation
同步异步 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的方法函数最后一个参数为 ...
- Node.js Base64 Encoding和Decoding
如何在Node.js中encode一个字符串呢?是否也像在PHP中使用base64_encode()一样简单? 在Node.js中有许多encoding字符串的方法,而不用像在JavaScript中那 ...
- NAIO & Node.js All In One
NAIO & Node.js All In One Node.js Tutorials https://nodejs.org/en/docs/ https://nodejs.org/en/do ...
- [Node.js] Read a File in Node.js with fs.readFile and fs.readFileSync
We'll read a csv file in node.js both synchronously, and asynchronously. The file we're reading is a ...
- [Node.js] Write or Append to a File in Node.js with fs.writeFile and fs.writeFileSync
In node.js, you can require fs, and then call fs.writeFile with the filename, and data to write to t ...
- node.js delete directory & file system
node.js delete directory & file system delete a not empty directory https://nodejs.org/api/fs.ht ...
随机推荐
- Spring Boot中的 6 种API请求参数读取方式
使用Spring Boot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot中也提供了多种机制来满足不同的API设计要求. 接下来,就通过本文,为大家总结6种常用的请 ...
- .eslintrc.js 文件语法规则定义
添加某个全局变量: globals: { 'ActiveXObject': true },
- Java8新特性default关键字,引出Java多继承问题
概述 最近在看JDK集合的源码时,在Collection接口中发现了default关键字,并且惊奇的发现接口中的方法居然包含方法体,这顿时让我产生兴趣,为此我也稍微研究了一下default关键字. 很 ...
- k8s组件和网络插件挂掉,演示已有的pod是否正常运行
环境 03 master ,05 06是node [root@mcwk8s03 mcwtest]# kubectl get nodes -o wide NAME STATUS ROLES AGE VE ...
- js数组操作——对象数组根据某个相同的字段分组
先说点废话 最近在实际业务中,需要编写一个方法根据数组中每一个对象的一个相同字段,来将该字段值相等的对象重新编入一个数组,返回一个嵌套的数组对象,特地来做个总结. 当然需要注意的是,在开发过程这种数组 ...
- 文件系统(六):一文看懂linux ext4文件系统工作原理
liwen01 2024.06.09 前言 Linux系统中的ext2.ext3.ext4 文件系统,它们都有很强的向后和向前兼容性,可以在数据不丢失的情况下进行文件系统的升级.目前ext4是一个相对 ...
- 以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的
本文基于 OpenJDK17 进行讨论 1. Reference 相关概念及其应用场景总览 Reference(引用)是 JVM 中非常核心且重要的一个概念,垃圾回收器判断一个对象存活与否都是围绕着这 ...
- # android studio启动虚拟机长时间无响应,无法启动
问题 虚拟设备长时间不响应,无法启动设备 方案 根据 android studio启动虚拟器失败 尝试删除锁文件 失败,.android 目录下不存在锁文件 电脑内存或计算配置不足 查看了模拟器需要的 ...
- mysql8新版本安装注意事项及解决本地系统账户Strart the server和SQLyog客户端连接报 plugin caching_sha2_password could not be loaded
mysql 安装包一路next安装, 到Apply Configuration,卡住在Start the server,原因是mysql8新版本的登录身份不对,需要进入服务,找到mysql80,然后属 ...
- UniTask入门指南:简化Unity中的异步编程
UniTask入门指南:简化Unity中的异步编程 介绍: UniTask是一个轻量级.高性能的异步编程库,专门针对Unity开发进行了优化.与Unity标准的Task系统相比,UniTask提供了更 ...