fs模块是nodejs的一个内置模块,fs模块用于对系统文件及目录进行读写操作。要使用此模块:
const fs = require('fs');
fs模块提供了一些操作系统文件相关的api,所有的文件系统操作都具有同步和异步的形式。异步的形式总是把完成回调作为其最后一个参数。 传给完成回调的参数取决于具体方法,但第一个参数总是预留给异常。 如果操作被成功地完成,则第一个参数会为 null
或 undefined
。
文件相关
1.读取文件
//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.覆盖式写入
fs.writeFileSync('文件名','内容');
//2.追加式写入
fs.appendFileSync('文件名','内容');
3.删除文件
fs.unlinkSync('文件名');
4.复制文件
fs.copyFileSync('源文件名','备份文件名');
5.重命名文件
fs.renameSync('源文件名','新文件名');
目录相关
1.读取目录
将读取目录中的文件名存入数组,忽略尾缀
let res = fs.readdirSync('目录名');
2.创建目录
不可嵌套创建,可创建子目录
let res = fs.mkdirSync('目录名');
3.删除空目录
let res = fs.rmdirSync('目录名');
判断文件/目录是否存在
//1.存在返回true,不存在返回false
let isFile = fs.existsSync('文件名');
//2.存在什么都不发生,不存在报错 => 尽量通过try{}catch{}捕获错误
let isFile = fs.accessSync('文件名');
检查是文件还是目录
const file = fs.statSync('test.txt'); //查看文件信息
file.isDirectory() //判断目录
file.isFile() //判断文件