javascript - fs.readdir 忽略目录

标签 javascript node.js readdir

我想扫描文件夹,但忽略其中包含的所有文件夹/目录。我在(C:/folder/)中只有.txt文件和其他文件夹,我只想扫描txt文件,而忽略文件夹。

app.get('/generatE', function (req, res) {
  const logsFolder = 'C:/folder/';
  fs.readdir(logsFolder, (err, files) => {
    if (err) {
      res.send("[empty]");
      return;
     }
     var lines = [];
     files.forEach(function(filename) {
       var logFileLines = fs.readFileSync (logsFolder + filename, 'ascii').toString().split("\n");

       logFileLines.forEach(function(logFileLine) {


         if(logFileLine.match(/.*AUDIT*./)) {
           lines.push(logFileLine+'\n');
         }
       })
     })

最佳答案

使用fs.readdirfs.readdirSync带有选项 { withFileTypes: true } 的方法,然后使用 dirent.isFile 进行过滤(需要 Node 10.10+)。

同步版本

const fs = require('fs');
const dirents = fs.readdirSync(DIRECTORY_PATH, { withFileTypes: true });
const filesNames = dirents
    .filter(dirent => dirent.isFile())
    .map(dirent => dirent.name);
// use filesNames

异步版本(带有async/await,需要Node 11+)

import { promises as fs } from 'fs';

async function listFiles(directory) {
    const dirents = await fs.readdir(directory, { withFileTypes: true });
    return dirents
        .filter(dirent => dirent.isFile())
        .map(dirent => dirent.name);
}

异步版本(带回调)

const fs = require('fs');
fs.readdir(DIRECTORY_PATH, { withFileTypes: true }, (err, dirents) => {
    const filesNames = dirents
        .filter(dirent => dirent.isFile())
        .map(dirent => dirent.name);
    // use filesNames
});

关于javascript - fs.readdir 忽略目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472161/

相关文章:

javascript - 检查 req.body 是否为空不适用于express

javascript - 如何使用 ejs 将一些 JS 代码包含到 Bootstrap 模式中?

Perl:使用循环还是 Map/Grep?

PHP readdir( ) 返回 ". "和 ".. "条目

javascript - 单元测试 AngularJS : Uncaught Error: [$injector:nomod] Module is not available! 和 ReferenceError:运行 Karma 时未定义模块

javascript - 使用带矩的 Handlebars 模板

javascript - 如何完全停止/重置/重新初始化 Matter.js canvas/world/engine/instance

node.js - 将 HLS 播放列表 list 文件和媒体片段文件直接上传到 GCP

c - 在 C 中使用 dirent.h 读取和选择文件

javascript - 如何在 WinRT JavaScript 应用程序中获取屏幕分辨率?