有什么干净的方法可以检查路径是文件还是目录?
目前我正在使用此
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
。
由于我的文件夹的名称上可能有点,因此无法真正检查.
是否存在(例如文件名的扩展名)。
如何检查给定的路径是用于文件还是目录? (考虑在检查时还不存在)?
帮助!
答案 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 ''