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);
}
});
}
}