2017-02-17 2 views
0

Ich habe ein Problem mit der Verwaltung von Dateien. Ich habe einige Inhalte, die täglich aktualisiert werden, und ich möchte die Daten von einigen der Dateien analysieren. Aber das Problem, das ich habe, möchte ich die Dateien nicht berühren, die ich bereits getan habe. Wie kann ich den Überblick behalten, was bereits gemacht wurde und wo ich das nächste Mal anfangen soll? Verwenden von nodejsÜberblick über Dateien

Antwort

1

Angenommen, die Dateien befinden sich in einem lokalen Dateisystem. 1. Lesen Sie die lastModifiedTime. 2. Jedes Mal, wenn sich lastModifiedTime vom vorherigen lastModifiedTime für die Datei unterscheidet, lastModifiedTime aktualisieren und anschließend die Datei

analysieren und die Schritte 2 in regelmäßigen Abständen ausführen. (60 Sekunden im Code)

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

Vielen Dank, dass sollte funktionieren. Aus irgendeinem Grund läuft Ihr Code nicht – Slygoth

+0

@Slygoth was ist der Fehler, den Sie bekommen? Ich nehme an, Sie haben die Dateinamen durch den vollständigen Pfad ersetzt. Die erste Ausführung erfolgt erst, wenn reloadTimes Millisekunden vorbei sind. – Ashwin

+0

O ok toll vielen Dank – Slygoth

Verwandte Themen