项目中常用的node的文件操作
const fs = require('fs');
1、fs.createReadStream(path, [options])
返回一个readStream(文件读取流,输入流)对象。(可读流)
path:(string)想读取的文件路径
options:(object)数组对象包含以下属性
{
flag: 'w', // 描述语
encoding: null, // utf8、ascii、base64
start: null, // 控制文件可读取字节数范围
end: null,
autoClose: true // 文件描述符是否会被关闭
}
2、fs.createWriteStream(path, [options])
返回一个writeStream(文件输入流)对象。(可写流)
path:(string)想写入的文件路径
options:(object)参数包含以下属性
{
flag: 'w', // 默认值为W,如果你想修改一个文件,而不是取代它需要把flags改为R+
encoding: null,// utf8、ascii、base64
mode: 0666,
}
3、fs.stat(path, callback(err, stats)),fs.statSync(path)
获取文件信息状态
stat:是异步方法,path表示文件路径,callback指回调函数,有两个参数,stats是fs.stat的实例
statSync:同步方法,只接受一个path,返回的相当于stat的一个实例
3、1 fs.stat和fs.statSync实例的常用方法
1.stats.isFile(): 如果是文件则返回true,否则返回false;
2.stats.isDirectiory(): 如果是目录则返回true,否则返回false;
3.stats.isBlockDevice(): 如果是块设备则返回true,否则返回false;
4.stats.isCharacterDevice(): 如果是字符设备返回true,否则返回false;
5.stats.isSymbolicLink(): 如果是软链接返回true,否则返回false;
6.stats.isFIFO(): 如果是FIFO,则返回true,否则返回false.FIFO是UNIX中的一种特殊类型的命令管道;
7.stats.isSocket(): 如果是Socket则返回true,否则返回false;
8.stats.size(): 文件的大小(以字节为单位)。
4、fs.accessSync(path, mode)
用于同步测试给定文件或者目录的权限
path: (string)需要进行权限测试的文件或目录的路径
mode:是一个整数值,表示要测试的许可。可以具有的值,fs.constants.F_OK,fs.constants.R_OK,fs.constants.W_OK和fs.constants.X_OK。它是一个可选参数。默认值为fs.constants.F_OK。
5、fs.existsSync(path)
用于同步检查给定路径中是否已存在文件。返回一个布尔值,指示文件是否存在
path:(string)表示检查文件的路径
6、fs.mkdirSync(path,options)
用于同步创建目录
path:(string)创建目录的路径
options:(object)用于确定如何递归地创建目录等
7、fs.readdirSync(path, options)
用于同步读取给定目录的内容,返回一个数字,包含目录中的所有文件名或对象
path:(string)读取内容的目录路径
options:(object)用于指定将影响方法的可选参数
{
encoding: null, // utf8、ascii、base64
withFileTypes: true, // 指定是否将文件作为fs.Dirent对象返回。默认false
}
8、fs.rmdirSync(path, options)
用于同步删除给定路径下的目录
path:(string)删除目录的路径
options:(object)包含以下属性
{
recursive: boolean, // 是否执行递归目录删除
maxRetries: null, // 整数值,如果node因为任何错误而失败时,将尝试执行该操作的次数。在给定的重试延迟厚执行操作,如果递归选择未设置为true,则忽略该选项,默认0
retryDelay:null,// 整数值,指定重试该操作之前要等到的时间
}
9、path.join(path1, path2, path3...)
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是""。会创建文件
10、path.resolve(from, to)
将to参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。
11、fs.writeFile(file, data, {options}, callback)
用于异步写入文件。如果文件存在,该方法写入的内容会覆盖旧的文件内容
file:文件名或文件描述符
data:要写入文件的数据,可以是String或Buffer对象
options:该参数是一个对象,包含{encoding, mode, flag}。默认编码为utf8,模式为0666,flag为"w"
callback:回调函数,只包含错误信息参数(err),再写入失败时返回
行百里者半九十