fs.readdir 忽略目录

2024-01-02

我想扫描该文件夹,但忽略其中包含的所有文件夹/目录。我在(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');
         }
       })
     })

Use fs.readdir https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback or fs.readdirSync https://nodejs.org/api/fs.html#fs_fs_readdirsync_path_options带选项的方法{ withFileTypes: true }然后使用进行过滤dirent.isFile https://nodejs.org/api/fs.html#fs_dirent_isfile(需要节点 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,需要节点 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
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fs.readdir 忽略目录 的相关文章

随机推荐