如何在node . js中使用文件系统fs模块

  介绍

如何在节点。js中使用文件系统fs模块?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

fs是文件系统的缩写,该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装。但是,这个模块几乎对所有操作提供异步和同步两种操作方式,供开发者选择。

JavaScript的是没有操作文件的能力,但是节点是可以做到的,节点提供了操作文件系统模块,是节点中使用非常重要和高频的模块,是绝对要掌握的一个模块系统。

<强> 1。常用API快速复习

<强> fs。统计检测是文件还是目录

const  fs =,需要(& # 39;fs # 39;)   fs.stat (& # 39; hello.js& # 39;,,(错误,数据)=祝辞{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(统计)   ,console.log(“文件:$ {stats.isFile ()}”)   ,console.log(“目录:$ {stats.isDirectory ()}”)   ,}   })

<强> fs。mkdir创建目录

const  fs =,需要(& # 39;fs # 39;)   fs.mkdir(& # 39;日志# 39;,,error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(& # 39;目录创建成功! & # 39;)   ,}   })

<强> fs。删除文件夹删除目录

const  fs =,需要(& # 39;fs # 39;)   fs.rmdir(& # 39;日志# 39;,,error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(& # 39;成功删除了目录,日志# 39;)   ,}   })

<强> fs。writeFile创建写入文件

const  fs =,需要(& # 39;fs # 39;)   fs.writeFile(& # 39;日志/hello.log& # 39;, & # 39;您好~ \ n # 39;,, error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(& # 39;成功写入文件& # 39;);   ,}   })

<强> fs。appendFile追加文件

const  fs =,需要(& # 39;fs # 39;)   fs.appendFile(& # 39;日志/hello.log& # 39;, & # 39;你好~ \ n # 39;,, error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(& # 39;成功写入文件& # 39;);   ,}   })

<强> fs。readFile读取文件

const  fs =,需要(& # 39;fs # 39;)   fs.readFile(& # 39;日志/hello.log& # 39;, & # 39; utf - 8 # 39;,,(错误,,数据),=祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(数据);   ,}   })

<强> fs。拆开删除文件

const  fs =,需要(& # 39;fs # 39;)   fs.unlink(日志/$ {file},, error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(“成功删除了文件:,$ {file} ')   ,}   })

fs。readdir读取目录

const  fs =,需要(& # 39;fs # 39;)   fs.readdir(& # 39;日志# 39;,,(错误,,文件),=祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(文件);   ,}   })

<强> fs。重命名重命的名,还可以更改文件的存放路径

const  fs =,需要(& # 39;fs # 39;)   fs.rename (& # 39; js/hello.log& # 39;,, & # 39; js/greeting.log& # 39;,, error =祝辞,{   ,如果(错误){   ,console.log(错误)   ,}else  {   ,console.log(& # 39;重命名成功& # 39;)   ,}   })

<强> 2。第三方NPM包mkdirp的使用

mkdirp不仅可以创建文件夹,还可以创建多层的文件夹,类似mkdir - p命令

<代码> midir - p/tmp/foo/bar巴兹

上述命令也可以在当前目录创建多层几文件夹。

如下代码在当前目录生成多层级文件夹

const  mkdirp =,需要(& # 39;mkdirp& # 39;)   mkdirp (& # 39; tmp/foo/bar/巴兹# 39;),然后(made =祝辞,console.log(“创建目录于:,$ {}”))//,创建目录于:,/用户/zhangbing/github/CodeTest/节点/fs/tmp

结果

如何在Node . js中使用文件系统fs模块

<强> 3。实战举例

实战1

判断服务器上面有没有上传目录。如果没有就创建这个目录,如果有的话不做操作

const  fs =,需要(& # 39;fs # 39;)      const  path =, & # 39;。/上传# 39;   fs.stat(路径,(呃,,数据),=祝辞,{   ,如果(err) {   ,//执行创建目录   ,mkdir(路径)   ,返回   ,}   ,如果(data.isDirectory ()), {   ,console.log(& # 39;上传目录存在& # 39;);   ,其他}{   ,//首先删除文件,再去执行创建目录   ,fs.unlink(路径,err =祝辞,{   如果才能(!呃),{   mkdir才能(路径)   ,,}   ,})   ,}   })      function  mkdir (dir), {   ,fs.mkdir (dir, err =祝辞,{   ,如果(err) {   console.log才能(错);   ,返回   ,}   ,})   }

如何在node . js中使用文件系统fs模块