fs模块
- 在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。
- 在fs模块中,所有的方法都分为同步和异步两种实现。
- 具有sync后缀的方法为同步方法,不具有sync后缀的方法为异步方法。
- 异步方法一般最后一个参数都为callback;同步则直接返回。
Node 遵循错误优先回调
- 回调函数的第一个参数,必须是错误对象error 如果有错误发生,错误将通过第一个参数error返回;
- 第二个参数作为成功响应的数据,如果没有异常,error会被设为null。
常用API
一,增
fs.writeFile() 创建文件,如果文件存在就写入数据覆盖原有数据, 如果不存在就创建并写入, 如果文件所在目录不存在,会报错, 因为writeFile只能创建文件,不能创建文件夹
fs.appendFile() 创建文件,如果文件存在就在原有数据后追加信息, 如果不存在就创建并写入
fs.mkdir() 创建文件夹, 如果目录不存在就创建,如果存在就报错
二,删
fs.rm() 删除文件
fs.rmdir() 删除文件夹, 必须是空目录才能删除, 否则会报错
三,改
fs.rename() 可以修改文件的 位置,文件名,后缀, 注意不能跨盘
四,查
fs.exists() 判断文件或目录是否存在,返回bool值
fs.readdir() 读取目录下的所有文件和子目录 withFileTypes可判断类型(文件1目录2) 回调的第一个参数是错误信息,第二个参数是包含了子文件名的数组
fs.readFile() 读取文件, 第二个参数设置编码方式,否则默认二进制流buffer
五,其他常用API
fs.access(path[, mode], callback)
- 测试用户对
path
指定的文件或目录的权限。 mode
参数是可选的整数,指定要执行的可访问性检查。mode
应该是值fs.constants.F_OK
或由fs.constants.R_OK
、fs.constants.W_OK
和fs.constants.X_OK
中的任何一个(例如fs.constants.W_OK | fs.constants.R_OK
)的按位或组成的掩码。 查看文件访问的常量以获取可能的mode
值。- 最后一个参数
callback
是回调函数,其使用一个可能的错误参数调用。 如果任何可访问性检查失败,则错误参数将是Error
对象。 以下示例检查package.json
是否存在,以及是否可读或可写。
注意:在调用 fs.open()
、fs.readFile()
或 fs.writeFile()
之前,不要使用 fs.access()
检查文件的可访问性。 这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。 而是,用户代码应直接打开/读取/写入文件,并处理无法访问文件时引发的错误。
fs.copyFile(src, dest[, mode], callback)
异步地将 src
复制到 dest
。 默认情况下,如果 dest
已经存在,则会被覆盖。 除了可能的异常之外,没有给回调函数提供任何参数。 Node.js 不保证复制操作的原子性。 如果在打开目标文件进行写入后发生错误,Node.js 将尝试删除目标文件。
fs.cp(src, dest[, options], callback)
将整个目录结构从 src
异步地复制到 dest
,包括子目录和文件。
当将目录复制到另一个目录时,不支持 globs,并且行为类似于 cp dir1/ dir2/
。
fs.fchmod(fd, mode, callback)
设置文件的权限。 除了可能的异常之外,没有为完成回调提供任何参数。
fs.fchown(fd, uid, gid, callback)
设置文件的所有者。 除了可能的异常之外,没有为完成回调提供任何参数。
fs.open(path[, flags[, mode]], callback)
异步地打开文件。
fs.opendir(path[, options], callback)
异步地打开目录。
fs.unlink(path, callback)
异步地删除文件或符号链接。 除了可能的异常之外,没有为完成回调提供任何参数。fs.unlink()
不适用于目录,无论是空目录还是其他目录。 要删除目录,请使用 fs.rmdir()。