如何检查路径是文件还是目录

时间:2020-07-08 06:54:54

标签: javascript node.js node-modules fs

有什么干净的方法可以检查路径是文件还是目录?

目前我正在使用此

exports.isDirectory = (dirPath) => {
  return fs.lstatSync(dirPath).isDirectory()
}

但是我的问题是,如果dirPath还不存在,那么lstatSync会给出一个错误。

然后我也尝试过:

exports.getFileName = (filePath) => {
  return filePath.split(/[\\\/]/).pop()
}

exports.isDirectory = (dirPath) => {
  return exports.getFileName(dirPath) === ''
}

然后致电:

const home = require('os').homedir()
const sampleLoc = path.join(home, '/.folder/another'))
isDirectory(sampleLoc)

但是它基本上只认为another是文件名,并在false上返回isDirectory

由于我的文件夹的名称上可能有点,因此无法真正检查.是否存在(例如文件名的扩展名)。

如何检查给定的路径是用于文件还是目录? (考虑在检查时还不存在)?

帮助!

1 个答案:

答案 0 :(得分:0)

如果将要生成的所有文件都包含文件扩展名,则可以使用extname中内置的path-module函数,因为它将尝试从路径获取扩展名。

如果没有扩展名,该函数将返回一个空字符串。您可以将其用作检测目录的条件:

const path = require('path');

let fileExt = path.extname('/some/path/test.jpg'); // fileExt will yield '.jpg'
fileExt = path.extname('/some/path/'); // fileExt will be ''
相关问题