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