fs-extra ensureDir()方法

栏目: NodeJs 发布时间:2024-12-24

ensureDir 方法用于确保一个目录存在。如果目录不存在,它将创建该目录及其所有必需的父目录。

ensureDir 方法接受一个必需的参数:目录路径(dir),以及一个可选的配置对象(options)。然而,在大多数情况下,你只需要提供目录路径即可。

基本用法

fse.ensureDir('/path/to/directory')
  .then(() => {
    console.log('目录已确保存在,或已创建!');
  })
  .catch(err => {
    console.error('确保目录存在失败:', err);
  });

使用配置对象(可选)

虽然 ensureDir 方法通常不需要配置对象,但 fs-extra 的其他方法可能会用到。对于 ensureDir,你可以传递一个包含目录权限等选项的对象,但通常这是不必要的,因为默认行为已经足够。

const options = {
  mode: 0o755 // 设置目录权限为所有者可读/写/执行,组和其他用户可读/执行
};

fse.ensureDir('/path/to/directory', options)
  .then(() => {
    console.log('目录已确保存在,或已创建(带选项)!');
  })
  .catch(err => {
    console.error('确保目录存在失败:', err);
  });

然而,如上所述,对于大多数用例,传递配置对象给 ensureDir 是不必要的。

使用 async/await 语法

由于 ensureDir 方法返回一个 Promise,你可以使用 async/await 语法来更优雅地处理异步操作和错误。

const ensureDirectoryExists = async () => {
  try {
    await fse.ensureDir('/path/to/directory');
    console.log('目录已确保存在,或已创建!');
  } catch (err) {
    console.error('确保目录存在失败:', err);
  }
};

ensureDirectoryExists();

注意事项

  • 如果目录已经存在,ensureDir 方法将不会修改目录内容或属性,只是简单地返回成功。
  • ensureDir 方法会创建目录的所有必需父目录。例如,如果 /path/to/directory 中的 /path/to 目录不存在,ensureDir 将创建它们。
  • 创建目录操作可能会因为权限问题、磁盘空间不足、路径名无效或其他文件系统错误而失败。

本文地址:https://www.tides.cn/p_node-fs-extra-ensure-dir