📜  如何检查给定路径是 node.js 中的文件还是目录?(1)

📅  最后修改于: 2023-12-03 15:38:50.772000             🧑  作者: Mango

如何检查给定路径是 node.js 中的文件还是目录?

在 Node.js 中,您可以使用 fs 模块中的 stat 函数来检查给定路径是文件还是目录。以下是一个示例:

const fs = require('fs');

fs.stat(path, (err, stats) => {
  if (err) {
    console.error(err);
    return;
  }

  if (stats.isFile()) {
    console.log(`${path} is a file`);
  } else if (stats.isDirectory()) {
    console.log(`${path} is a directory`);
  } else {
    console.log(`${path} is neither a file nor a directory`);
  }
});

在上面的代码中,我们使用 fs 模块的 stat 函数来获取给定路径的文件信息。如果路径不存在,stat 函数将返回一个错误。如果给定路径是一个文件,我们可以使用 stats.isFile() 方法来检查。如果给定路径是一个目录,我们可以使用 stats.isDirectory() 方法。如果给定路径既不是文件也不是目录,我们将输出一条相应的消息。

注意,stat 函数是一个异步函数,需要使用回调函数来处理返回结果。如果想要使用同步函数,可以使用 fs.statSync 函数。

const fs = require('fs');

try {
  const stats = fs.statSync(path);

  if (stats.isFile()) {
    console.log(`${path} is a file`);
  } else if (stats.isDirectory()) {
    console.log(`${path} is a directory`);
  } else {
    console.log(`${path} is neither a file nor a directory`);
  }
} catch (err) {
  console.error(err);
  return;
}

上面的代码将产生相同的结果,但是它使用了同步函数,不需要使用回调函数进行处理。

总之,使用 fs 模块中的 stat 函数可以轻松检查给定路径是文件还是目录,这对于 Node.js 开发非常有用。

参考