fs File System 模块是 nodejs 的一个内置模块,fs 模块用于对系统文件及目录进行读写操作。要使用此模块:

1
const fs = require("fs");

fs 模块提供了一些操作系统文件相关的 api,所有的文件系统操作都具有同步和异步的形式。异步的形式总是把完成回调作为其最后一个参数。 传给完成回调的参数取决于具体方法,但第一个参数总是预留给异常。 如果操作被成功地完成,则第一个参数会为 null 或 undefined。

文件相关

1.读取文件
1
2
3
4
5
6
7
8
9
//1.同步方式
let result = fs.readFileSync('文件名','utf-8');
//2.异步方式
let result = fs.readFile('文件名','utf-8',(err,data)=>{
//err报错信息,若无报错返回 null
//data 读取的内容
if(err !== null) return err;
...
})
2.写入文件
  • 两种方式,覆盖式和追加式
  • 写入内容只能是字符串
  • 若写入其它类型数据,如对象,可通过 JSON.stringify() 转字符串
  • 若文件不存在,则自动新建该文件
1
2
3
4
//1.覆盖式写入
fs.writeFileSync("文件名", "内容");
//2.追加式写入
fs.appendFileSync("文件名", "内容");
3.删除文件
1
fs.unlinkSync("文件名");
4.复制文件
1
fs.copyFileSync("源文件名", "备份文件名");
5.重命名文件
1
fs.renameSync("源文件名", "新文件名");

目录相关

1.读取目录
  • 将读取目录中的文件名存入数组,忽略尾缀
1
let res = fs.readdirSync("目录名");
2.创建目录
  • 不可嵌套创建,可创建子目录
1
let res = fs.mkdirSync("目录名");
3.删除空目录
1
let res = fs.rmdirSync("目录名");

判断文件/目录是否存在

1
2
3
4
//1.存在返回true,不存在返回false
let isFile = fs.existsSync("文件名");
//2.存在什么都不发生,不存在报错 => 尽量通过try{}catch{}捕获错误
let isFile = fs.accessSync("文件名");

检查是文件还是目录

1
2
3
const file = fs.statSync("test.txt"); //查看文件信息
file.isDirectory(); //判断目录
file.isFile(); //判断文件