2017-02-17 9 views
0

У меня возникла проблема с управлением файлами. У меня есть контент, который будет обновляться ежедневно, и я хочу проанализировать данные из некоторых файлов. Но проблема у меня есть, я не хочу прикасаться к файлам, которые я уже сделал. Как я могу следить за тем, что уже было сделано, и с чего начать в следующий раз. Использование nodejsОтслеживание файлов

ответ

1

Предполагая, что файлы находятся в локальной файловой системе. 1. прочитайте lastModifiedTime. 2. в любое время, когда lastModifiedTime отличается от предыдущего lastModifiedTime для обновления файла lastModifiedTime, а затем проанализирует и прочитает файл

выполните шаги 2 с регулярным интервалом. (60 секунд в коде)

var fs = require("fs"); 

var filePaths = ['file_name_1', 'file_name_2']; 
var mtimes = {}; 
var reloadTimes = 60000; 
var execFunction = function(){ 
    for(var i = 0; i < filePaths.length; i++) { 
     parseFile(filePaths[i], mtimes[filePaths[i]]); 
    } 
}; 
setInterval(execFunction, reloadTimes); 
var parseFile = function(fileName, lastModifiedTime) { 
    fs.stat(fileName, function(err, fd) { 
     if(lastModifiedTime == undefined || fd.mtime.getTime() !== lastModifiedTime.getTime()) { 
      mtimes[fileName] = fd.mtime; 
      // read the file and parse it 
     } 
    });  
}; 
execFunction(); 
+0

Спасибо большое, что должно сработать. По какой-то причине ур код не работает – Slygoth

+0

@Slygoth какая ошибка вы получаете? Я предполагаю, что вы заменили имена файлов полным путем. В первый раз выполнение не произойдет, пока не перезагрузится миллисекунды. – Ashwin

+0

O хорошо большое спасибо – Slygoth

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

  • Нет связанных вопросов^_^