fs-extra mkdirs()方法
栏目:
NodeJs
发布时间:2024-12-24
fs-extra mkdirs 方法教程
在 fs-extra 中,mkdirs(或 mkdirsSync 同步版本)方法用于递归地创建目录,即如果父目录不存在,它会先创建父目录,然后创建目标目录。
mkdirs 方法接受至少一个参数:要创建的目录的路径(path),以及一个可选的配置对象(options)。配置对象可以包含与目录创建相关的选项,如文件模式(mode)。
基本用法
fse.mkdirs('/path/to/directory')
.then(() => {
console.log('目录已创建(包括任何必要的父目录)!');
})
.catch(err => {
console.error('创建目录失败:', err);
});
使用配置对象(可选)
你可以传递一个配置对象来指定目录的权限(mode)等选项。
const options = {
mode: 0o755 // 设置目录权限为 755(rwxr-xr-x)
};
fse.mkdirs('/path/to/directory', options)
.then(() => {
console.log('目录已创建(包括任何必要的父目录),并设置了权限!');
})
.catch(err => {
console.error('创建目录失败:', err);
});
注意:mode 选项在某些文件系统或操作系统上可能不起作用,具体取决于底层的文件系统实现和权限模型。
使用 async/await 语法
由于 mkdirs 方法返回一个 Promise,你可以使用 async/await 语法来更优雅地处理异步操作和错误。
const createDirectory = async () => {
try {
await fse.mkdirs('/path/to/directory');
console.log('目录已创建(包括任何必要的父目录)!');
} catch (err) {
console.error('创建目录失败:', err);
}
};
createDirectory();
同步版本 mkdirsSync
如果你需要在同步上下文中使用 mkdirs,fs-extra 还提供了 mkdirsSync 方法。
try {
fse.mkdirsSync('/path/to/directory', { mode: 0o755 });
console.log('目录已创建(包括任何必要的父目录),并设置了权限(同步)!');
} catch (err) {
console.error('创建目录失败(同步):', err);
}
注意事项
- 如果目录已经存在,
mkdirs方法将不会抛出错误,而是简单地返回成功。 - 创建目录操作可能会因为权限问题、磁盘空间不足、路径名无效或其他文件系统错误而失败。
- 在 Windows 上,目录的创建行为可能与 Unix-like 系统略有不同,但
fs-extra通常会尽量保持一致性。
本文地址:https://www.tides.cn/p_node-fs-extra-mkdirs