fs-extra教程
fs-extra是一个扩展了node.js内置fs模块功能的第三方库,它不仅包含了fs模块的所有方法,还添加了许多实用的功能,如复制、移动、删除文件或目录等。fs-extra的所有方法都支持Promise,使得异步编程变得更加简单和直观。
安装fs-extra
首先,你需要在你的Node.js项目中安装fs-extra。你可以使用npm(Node包管理器)来安装它:
npm install fs-extra
安装完成后,你就可以在你的项目中引入并使用fs-extra了。
引入fs-extra
在你的JavaScript或typescript文件中,你可以通过require或import语句来引入fs-extra:
const fse = require('fs-extra');
或者使用ES6模块语法:
import * as fse from 'fs-extra';
使用fs-extra
复制文件或目录
fs-extra提供了copy
和copySync
方法来异步或同步地复制文件或目录。
// 异步复制
fse.copy('/path/to/source', '/path/to/dest')
.then(() => console.log('复制成功!'))
.catch(err => console.error(err));
// 同步复制
try {
fse.copySync('/path/to/source', '/path/to/dest');
console.log('复制成功!');
} catch (err) {
console.error(err);
}
移动文件或目录
move
和moveSync
方法用于异步或同步地移动文件或目录。
// 异步移动
fse.move('/path/to/source', '/path/to/dest')
.then(() => console.log('移动成功!'))
.catch(err => console.error(err));
// 同步移动
try {
fse.moveSync('/path/to/source', '/path/to/dest');
console.log('移动成功!');
} catch (err) {
console.error(err);
}
删除文件或目录
remove
和removeSync
方法用于异步或同步地删除文件或目录,包括目录中的所有内容。
// 异步删除
fse.remove('/path/to/dir')
.then(() => console.log('删除成功!'))
.catch(err => console.error(err));
// 同步删除
try {
fse.removeSync('/path/to/dir');
console.log('删除成功!');
} catch (err) {
console.error(err);
}
读写JSON文件
fs-extra还提供了readJson
、readJsonSync
、writeJson
和writeJsonSync
方法来异步或同步地读写JSON文件。
// 异步读取JSON文件
fse.readJson('/path/to/config.json')
.then(config => console.log(config))
.catch(err => console.error(err));
// 同步读取JSON文件
try {
const config = fse.readJsonSync('/path/to/config.json');
console.log(config);
} catch (err) {
console.error(err);
}
// 异步写入JSON文件
fse.writeJson('/path/to/config.json', { name: 'fs-extra' })
.then(() => console.log('写入成功!'))
.catch(err => console.error(err));
// 同步写入JSON文件
try {
fse.writeJsonSync('/path/to/config.json', { name: 'fs-extra' });
console.log('写入成功!');
} catch (err) {
console.error(err);
}
其他常用方法
ensureFile
和ensureFileSync
:确保文件存在,如果不存在则创建。ensureDir
和ensureDirSync
:确保目录存在,如果不存在则创建。emptyDir
和emptyDirSync
:确保目录为空,如果目录不为空则删除其内容。mkdirs
或mkdirp
和mkdirsSync
或mkdirpSync
:创建多级目录。pathExists
和pathExistsSync
:检查给定路径是否存在。readFile
和readFileSync
:读取文件内容。writeFile
和writeFileSync
:写入文件内容。
使用async/await
由于fs-extra的所有异步方法都返回一个Promise,因此你可以使用async/await语法来处理更复杂的异步逻辑。
const processFiles = async () => {
try {
await fse.copy('/path/to/source', '/path/to/dest');
console.log('文件复制完成');
const data = await fse.readJson('/path/to/config.json');
console.log('配置读取完成', data);
// ...更多异步操作
} catch (err) {
console.error('出错了', err);
}
};
processFiles();
通过以上教程,你应该能够掌握fs-extra的基本用法,并在你的Node.js项目中灵活运用它来进行文件操作。
本文地址:https://www.tides.cn/p_node-fs-extra