2017-01-04 2 views
3

Я хотел бы отсканировать папку, но игнорировать все папки/каталоги, которые включены в нее. Все, что у меня есть в (C:/folder /), являются .txt-файлами и другими папками, я просто хочу отсканировать файлы txt и игнорировать папки.fs.readdir игнорировать каталоги

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'); 
     } 
     }) 
    }) 
+0

Вы читали эти ответы раньше? http://stackoverflow.com/questions/25460574/find-files-by-extension-html-under-a-folder-in-nodejs –

ответ

3

Почему бы не просто отфильтровать файлы, которые заканчиваются на «.txt»?

var fs = require("fs") 
fs.readdirSync("./").filter(function(file) { 
    if(file.indexOf(".txt")>-1)console.log(file) 
}) 

Я должен добавить, что ранее, чтобы получить массив из этих файлов вы должны вернуть их в массив, как показано ниже.

var fs = require("fs") 
let text_file_array = fs.readdirSync("./").filter(function(file) { 
    if(file.indexOf(".txt")>-1) return file; 
}) 
+1

или '.filter (f => f.includes (". txt ")) 'с ES6 –

Смежные вопросы