Node.js 如何读取目录并知道文件类型?

Node.js 如何读取目录并知道文件类型?,node.js,fs,Node.js,Fs,如果要读取文件夹,我们可以: const fs = require('fs') let folderName = 'Any_folder_name' fs.readdir(folderName,(err,files)=>{ if (err) throw err; console.log(files) // this is a files' name list in this folder }) 但返回值只是文件名的列表。例如['README.md','src

如果要读取文件夹,我们可以:

const fs = require('fs')

let folderName = 'Any_folder_name'

fs.readdir(folderName,(err,files)=>{
    if (err) throw err;

    console.log(files)
    // this is a files' name list in this folder
})
但返回值只是文件名的列表。例如
['README.md','src']

但我想知道哪个是文件,哪个是文件夹。如何做到这一点

我知道我们可以使用循环到此列表和
fs.stats
来确认哪个是文件夹


但我想知道是否有更有效的方法来做到这一点

您可以使用
{withFileTypes:true}
选项,结果将包含对象

尝试:


文件字符串数组中,您不能查找文件扩展名并确定它。

NodeJS版本吗?您可以使用
{withFileTypes:true}
选项,结果将包含对象。如果
node>=10.0.0
@AyushGupta 8.7.0,问题由另一个commentOP解决,则询问
,但我想知道哪个是文件,哪个是文件夹。
某些文件的扩展名可能为空。此外,某些文件夹的名称中可能有
。正确的观点@saltfish,在使用ihor提供的解决方案并回答性能问题后,您能告诉我它是否比使用stats更有效。
fs.readdir(folderName, {withFileTypes: true}, (err, files) => {
    if (err) throw err;

    files.forEach(file => {
        console.log(file.isDirectory());
    });
})