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

如果你需要在同步上下文中使用 mkdirsfs-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