2017-03-13 8 views
0

いつでもreadDirectoryが呼び出されました。作成されたファイルがあるかどうかをチェックしています。日付は30日を超えています。私はdirecotryからそのファイルを削除します。これは期待どおりに動作しているとファイルを削除するが、私は効率的だとは思わない。そこで、comapreDatesメソッドを別のファイルに移動し、毎晩logs/Stというディレクトリを呼び出し、有効期限が切れたファイルが30日間経過したかどうかを確認します。それは可能ですか?nodejsを使ってスクリプトを実行するには?

service.js

function readDirectory(callback) { 
    var dirPath = './logs/St'; 
    var files = fs.readdirSync(dirPath); 
    async.eachSeries(files, function(file, callback) { 
     var filePath = path.join(dirPath, file); 
     var fileInfo = {}; 
     fs.stat(filePath, function(err, stats) { 
      if (err) { 
       console.info("File doesn't"); 
      } else { 
       fileInfo.fileDate = stats.birthtime; 
       fileInfo.filename = file; 
       compareDates(fileInfo, filePath); 
       objToReturn.push(fileInfo); 
       callback(); 
      } 
     }); 
    }, function(err) { 
     //final callback when all files completed here send objToReturn to client 
     callback(objToReturn); 
    }); 
} 
} 

function compareDates(file, path) { 
    var timeDiff = Math.abs(currentDate.getTime() - file.fileDate.getTime()); 
    var dayDifference = Math.ceil(timeDiff/(1000 * 3600 * 24)); 
    console.log('Days', dayDifference); 
    console.log('FileName', file.filename); 
    if (dayDifference >= 30) { 
     fs.unlink(path, function(err) { 
      if (err) { 
       // file doens't exist 
       console.info("File doesn't exist, won't remove it."); 
      } else { 
       console.log('removed file', file); 
      } 
     }); 

    } 

} 

答えて

関連する問題