Dans le Nœud, supprimez tous les fichiers datant de plus d'une heure?
Je veux supprimer tout les fichiers datant de plus d'une heure. C'est pour automatiquement un nettoyage du tmp répertoire uploads.
Voici mon code:
fs.readdir( dirPath, function( err, files ) {
if ( err ) return console.log( err );
files.forEach(function( file ) {
var filePath = dirPath + file;
fs.stat( filePath, function( err, stat ) {
if ( err ) return console.log( err );
var livesUntil = new Date();
livesUntil.setHours(livesUntil.getHours() - 1);
if ( stat.ctime < livesUntil ) {
fs.unlink( filePath, function( err ) {
if ( err ) return console.log( err );
});
}
});
});
});
Toutefois, cela supprime tout tout dans le répertoire, indépendamment de si oui ou non elle a été téléchargée plus d'une heure auparavant.
Suis-je malentendu comment vérifier l'âge du fichier dans le Nœud?
- avez-vous essayé d'utiliser
.getTime()
sur les deuxDate
des objets comme des la documentation suggère
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant rimraf récursive de supprimer n'importe quel fichier/dossier vieux de plus d'une heure.
Selon la docs, vous devez utiliser getTime() sur le ctime Date instance d'objet dans le but de les comparer.
J'ai utilisé trouvez-supprimer pour un même cas d'utilisation.
En fonction de la documentation et de ce que vous essayez de faire, le code sera:
Je suis effectivement en cours d'exécution que toutes les 6 minutes et la suppression des fichiers de plus de 1 heure en faisant:
Voir cette exemple sur la façon dont je suis l'aide de la recherche-retirer pour le nettoyage de la
/uploads
dossier.files: "*.*"
, pour que tout supprimé des fichiers.On dirait que vous êtes en comparant ce qui "stat.ctime" est à l'ensemble de l'objet Date.
Ne faut-il pas lire: