簡體   English   中英

讀取目錄中的所有文件

[英]Reading all files in a directory

這是我現在正在使用的代碼片段...

/* 
    Module: inputReader.js, directoryScanner.js (included)
    Description: Basic file reader returns string of contents of a file from a set file name
    Needs to be done: Add key listener to allow for a dynamic file name
 */

// Declare node.js module dependencies from API
var fs = require('fs'), 
    wrench = require('wrench'),
    util = require('util')

// Define module to be exported as a function(s)
module.exports = {
    dirRead: function() {
        var rootfolder = './node_modules';
        var filteredfiles = [];
        var files = [];
        var fileextension = '.html';

        files = wrench.readdirSyncRecursive(rootfolder)
        for (var i = 0; i<files.length; i++) { 
            if (files[i].indexOf(fileextension) != -1) { 
                filteredfiles.push(files[i]);
            }
        }
        return filteredfiles;
    },

    fileRead: function() {
        // Call synchronous fileSystem function readFileSync on file name
        for(i = 0; i<filteredfiles.length; i++) {
            var temp = fs.readFileSync(filteredfiles[i].toString(), 'utf8')
            return temp
        }
    }
};

我正在導出具有2種不同功能的模塊; 第一個(readDir)讀取目錄及其文件目錄的子目錄,第二個(readFile)依賴第一個文件(從第一個函數讀取文件列表,並實際上遍歷每個文件)。

問題是,當我嘗試在第二個函數readFile中調用filteredfiles的外觀時,出現錯誤消息,表明filteredfiles是未定義的。

我不確定該如何解決,請有人幫我嗎? (我的猜測是一個范圍問題)...

res.send(reader.dirRead()) and then, res.send(reader.fileRead(reader.dirRead()))

已過濾文件在dirRead函數中本地聲明(因此,對於fileRead函數不可見)。 您必須在更高范圍內聲明它,或將其作為fileRead參數傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM