80 votes

date de la dernière modification du fichier dans node.js

J'essaie de récupérer la dernière date de modification d'un fichier sur le serveur à l'aide de node.js.

J'ai essayé

 file.lastModified;

et

 file.lastModifiedDate;

les deux reviennent comme indéfinis.

103voto

Sandro Munda Points 12808

Vous devez utiliser la fonction stat :

D'après la documentation :

 fs.stat(path, [callback])

Statistique asynchrone(2). Le rappel obtient deux arguments (err, stats) où stats est un objet fs.Stats. Cela ressemble à ceci :

 { dev: 2049
, ino: 305352
, mode: 16877
, nlink: 12
, uid: 1000
, gid: 1000
, rdev: 0
, size: 4096
, blksize: 4096
, blocks: 8
, atime: '2009-06-29T11:11:55Z'
, mtime: '2009-06-29T11:11:40Z'
, ctime: '2009-06-29T11:11:40Z' 
}

Comme vous pouvez le voir, le mtime est la dernière fois modifiée.

73voto

Oleg Mikhailov Points 1885

Pour le nœud v 4.0.0 et versions ultérieures :

 fs.stat("/dir/file.txt", function(err, stats){
    var mtime = stats.mtime;
    console.log(mtime);
});

ou synchrone :

 var stats = fs.statSync("/dir/file.txt");
var mtime = stats.mtime;
console.log(mtime);

9voto

jagged software Points 20

Ici, vous pouvez obtenir l'heure de la dernière modification du fichier en secondes.

 fs.stat("filename.json", function(err, stats){
    let seconds = (new Date().getTime() - stats.mtime) / 1000;
    console.log(`File modified ${seconds} ago`);
});

Affiche quelque chose comme "Fichier modifié il y a 300,9 secondes"

5voto

cancerbero Points 136

En ajoutant simplement ce que Sandro a dit, si vous souhaitez effectuer la vérification le plus rapidement possible sans avoir à analyser une date ou quoi que ce soit, obtenez simplement un horodatage en millisecondes (nombre), utilisez mtimeMs .

Exemple asynchrone :

 require('fs').stat('package.json', (err, stat) => console.log(stat.mtimeMs));

Synchrone:

 console.log(require('fs').statSync('package.json').mtimeMs);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X