使用 Node.js 的 fs 模块轻松创建和删除文件夹
2024-01-15 23:03:36
前言
在 Node.js 中,文件系统操作是一个非常常见的功能。Node.js 提供了 fs 模块,它提供了丰富的 API 来操作文件和文件夹。在本篇文章中,我们将介绍如何使用 fs 模块来创建和删除文件夹。
创建文件夹
要创建文件夹,可以使用 fs.mkdir() 方法。该方法接受两个参数:文件夹的路径和一个回调函数。回调函数有两个参数:err 和 dir。如果创建文件夹成功,err 为 null,dir 为创建的文件夹的路径。如果创建文件夹失败,err 为一个错误对象。
以下是一个示例,演示如何使用 fs.mkdir() 方法创建文件夹:
const fs = require('fs');
fs.mkdir('new-folder', (err, dir) => {
if (err) {
console.error(err);
} else {
console.log('文件夹创建成功!');
}
});
上述代码中,我们使用 fs.mkdir() 方法创建了一个名为 "new-folder" 的文件夹。如果文件夹创建成功,我们将输出 "文件夹创建成功!"。否则,我们将输出错误信息。
删除文件夹
要删除文件夹,可以使用 fs.rmdir() 方法。该方法接受两个参数:文件夹的路径和一个回调函数。回调函数有两个参数:err 和 dir。如果删除文件夹成功,err 为 null,dir 为删除的文件夹的路径。如果删除文件夹失败,err 为一个错误对象。
以下是一个示例,演示如何使用 fs.rmdir() 方法删除文件夹:
const fs = require('fs');
fs.rmdir('new-folder', (err, dir) => {
if (err) {
console.error(err);
} else {
console.log('文件夹删除成功!');
}
});
上述代码中,我们使用 fs.rmdir() 方法删除了一个名为 "new-folder" 的文件夹。如果文件夹删除成功,我们将输出 "文件夹删除成功!"。否则,我们将输出错误信息。
递归创建和删除文件夹
有时候,我们需要创建或删除一个目录树。我们可以使用 fs.mkdirSync() 和 fs.rmdirSync() 方法来实现。这两个方法是 fs.mkdir() 和 fs.rmdir() 的同步版本。
以下是一个示例,演示如何使用 fs.mkdirSync() 方法递归地创建文件夹:
const fs = require('fs');
function mkdirSyncRecursive(dir) {
try {
fs.mkdirSync(dir);
} catch (err) {
if (err.code !== 'EEXIST') {
throw err;
}
}
}
mkdirSyncRecursive('new-folder/subfolder/subsubfolder');
上述代码中,我们定义了一个 mkdirSyncRecursive() 函数来递归地创建文件夹。该函数使用 fs.mkdirSync() 方法来创建文件夹。如果文件夹已经存在,我们将捕获 "EEXIST" 错误并忽略它。
以下是一个示例,演示如何使用 fs.rmdirSync() 方法递归地删除文件夹:
const fs = require('fs');
function rmdirSyncRecursive(dir) {
try {
fs.rmdirSync(dir);
} catch (err) {
if (err.code !== 'ENOTEMPTY') {
throw err;
}
const files = fs.readdirSync(dir);
files.forEach(file => {
const filePath = path.join(dir, file);
if (fs.statSync(filePath).isDirectory()) {
rmdirSyncRecursive(filePath);
} else {
fs.unlinkSync(filePath);
}
});
fs.rmdirSync(dir);
}
}
rmdirSyncRecursive('new-folder');
上述代码中,我们定义了一个 rmdirSyncRecursive() 函数来递归地删除文件夹。该函数使用 fs.rmdirSync() 方法来删除文件夹。如果文件夹不是空文件夹,我们将捕获 "ENOTEMPTY" 错误并忽略它。然后,我们将遍历文件夹中的文件和文件夹,并递归地删除它们。最后,我们将删除文件夹。
总结
在本篇文章中,我们介绍了如何使用 Node.js 的 fs 模块来创建和删除文件夹。我们还学习了如何递归地创建和删除文件夹。这些知识在实际开发中非常有用。