文件系统处理
最后更新于:2022-04-02 06:52:42
## 文件系统处理
我们在开发命令程序的时候,经常需要对文件做各种操作,比如,创建文件、删除文件、修改文件内容、遍历文件等。虽然`NodeJs`内置了`fs`模块供我们使用,但是其功能相对有限,这里,我将介绍一个第三方扩展模块[fs-extra](https://www.npmjs.com/package/fs-extra)。
[TOC]
### fs-extra模块与fs模块的关系
`fs-extra`模块是`fs`模块的扩充。也就是说,使用`fs-extra`模块可以做到以下两点:
1.直接调用`fs`模块所有方法(所以,你可以完全抛弃`fs`模块)
2.调用`fs-extra`扩充的方法
### fs-extra模块的安装
* 全局安装
~~~
$ npm install fs-extra -g
~~~
* 本地安装
将当前工作目录切换为需要使用`fs-extra`模块的目录(已经创建了`package.json`文件的目录)
~~~
$ npm install fs-extra --save
~~~
### 同步操作与异步操作
在介绍具体方法之前,有必要介绍一下文件系统的同步(`Sync`)方法和异步(`Async`)方法。
* 同步方法——只有等被调用方法执行结果返回之后,才会执行方法后面代码,执行过程是阻塞的。
* 异步方法——方法被调用后无需等待结果返回,直接执行后面代码,执行结果以回调的方式返回。
`fs-extra`的方法基本上都有一个同步和一个异步的方法,它们的方法定义也非常有规律,**异步方法只需在同步方法的基础上去掉名字的`Sync`,最后一个参数改为回调方法即可**,下面是一个例子:
~~~
var fse = require('fs-extra');
///异步方法
fse.emptyDir('mydir', function(err){
if (err) return console.error(err)
console.log('success!')
})
//同步方法
fse.emptyDirSync('mydir');
~~~
***为了文章的简介,下面介绍的常用方法,只介绍同步方法,不介绍异步方法,需要用到的时候,你可以根据规律自行补全。***
### fs-extra常用方法
#### copySync
**将源文件(或目录)拷贝到目标文件(或目录)**
* `copySync(src, dest, [options])`
* `src `: 源文件或目录路径
* `dest `: 目标文件或目录路径
* `options
';