微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js当中fs模块的常用API总结

node.js当中的fs模块与readline模块主要对应着系统的文件操作,node当中的文件操作和网络操作都属于阻塞性操作,故存在着大量的异步回调函数,其回调函数遵循上一篇文章介绍的 node.js当中对于回调函数的规定 的规则。并且为了避免出错,凡是涉及文件操作,我们一律使用文件的绝对物理路径来传递文件路径参数,这里常用的为path.join()__dirname,可详细用法可参考 node.js当中的全局成员与path模块的使用文件操作的api当中,每一个异步操作的api都有一个与之对应的同步方法,在此只介绍异步的api,一般来说,同步的方法只是比异步的方法少了一个回调函数的参数。

fs模块当中的常用API

1、fs.stat(path,callback)

方法用于检测文件的状态,可以借此来判断某个文件是否存在。path参数传入该文件的绝对物理路径,该callback回调函数有两个参数errstats。其中err错误信息参数,stats一个文件状态对象。

若传入的文件路径当中的文件不存在,则会出现如下的报错信息。

2、fs.writeFile(path,data[,options],callback)

方法可用于往指定文件当中写入内容,该内容会覆盖文件当中原有的内容。若传入的文件路径当中的文件不存在,则先完成该文件的穿件,再往里面写入指定内容path参数为该文件的绝对物理路径,data为需要写入该文件当中的数据内容,其中options参数可选,可以传入编码格式,若不传则认为utf8callback回调参数当中只有一个错误信息参数err,一般在写入失败时触发调用

3、fs.appendFile(path,callback)

方法可用于往指定文件当中追加写入内容,该内容不会覆盖文件当中原有的内容,只会在原有内容的基础上进行追加。若传入的文件路径当中的文件不存在,则先完成该文件的穿件,再往里面写入指定内容path参数为该文件的绝对物理路径,data为需要写入该文件当中的数据内容,其中options参数可选,可以传入编码格式,若不传则认为utf8callback回调参数当中只有一个错误信息参数err,一般在追加写入失败时触发调用

4、fs.unlink(path,callback)

方法可用于完成指定文件删除path参数为该文件的绝对物理路径,callback回调参数当中只有一个错误信息参数err,一般在该文件不存在或者删除文件失败时触发调用

5、fs.readFile(path[,callback)

方法用于读取指定文件当中的内容path参数为该文件的绝对物理路径,其中options参数可选,可以传入编码格式,如读取文本文件时,可传入'utf8',若不指定编码格式,则输出读取的文件内容Buffer形式,故一般都会传入该参数。callback回调参数当中有两个参数errdata,其中err错误信息参数,一般在在文件不存在或者读取文件失败时触发调用data文件内容

6、fs.rename(oldpath,newPath,callback)

方法可用于移动或重命名指定文件oldpath参数为该文件原来的路径,newPath参数为该文件移动或重命名之后的路径,这两个参数都必须能传入文件完整的绝对物理路径。callback回调参数当中只有一个错误信息参数,一般在oldpath当中指定的文件不存在或者该操作失败时触发调用

注意:文件的新路径当中的文件夹必须存在,若不存在则会出现如下的报错信息。

7、fs.mkdir(path[,model],callback)

方法可以用于创建一个目录文件夹,其中path为该目录的绝对物理路径,callback回调函数当中也只有一个错误信息参数,一般在目录创建失败时触发调用

注意:该方法不能完成多级目录的创建,node当中要求要创建的那个文件夹所在的文件夹必须能都存在。否则就会出现报错信息。

8、fs.rmdir(path,callback)

方法可以用于删除一个空目录。其中path为该目录的绝对物理路径,callback回调函数当中也只有一个错误信息参数,一般在该目录不存在或者删除操作失败时触发调用

注意:该传入的目录路径当中的目录必须能为一个空目录,否则会出现如下的报错信息,也不能完成删除操作。

9、fs.readdir(path,callback)

方法可以用于读取一个指定目录当中的信息。其中path为该目录的绝对物理路径,callback回调函数当中有两个参数errfileserr错误信息参数,一般在该目录不存在或读取失败时触发调用files一个数组对象,包含该目录下的所有文件夹与文件的名字。(仅为文件夹的名字和文件名,不是路径形式)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐