last modified file date in node.js

后端 未结 4 657
悲&欢浪女
悲&欢浪女 2020-12-24 10:35

I\'m trying to retrieve the last modified date of a file on the server using node.js.

I\'ve tried

file.lastModified;

and

相关标签:
4条回答
  • 2020-12-24 10:44

    For node v 4.0.0 and later:

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

    or synchronously:

    var stats = fs.statSync("/dir/file.txt");
    var mtime = stats.mtime;
    console.log(mtime);
    
    0 讨论(0)
  • 2020-12-24 10:49

    You should use the stat function :

    According to the documentation :

    fs.stat(path, [callback])
    

    Asynchronous stat(2). The callback gets two arguments (err, stats) where stats is a fs.Stats object. It looks like this:

    { 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' 
    }
    

    As you can see, the mtime is the last modified time.

    0 讨论(0)
  • 2020-12-24 10:54

    Just adding what Sandro said, if you want to perform the check as fast as possible without having to parse a date or anything, just get a timestamp in milliseconds (number), use mtimeMs.

    Asynchronous example:

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

    Synchronous:

    console.log(require('fs').statSync('package.json').mtimeMs);
    
    0 讨论(0)
  • 2020-12-24 10:58

    Here you can get the file's last modified time in seconds.

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

    Outputs something like "File modified 300.9 seconds ago"

    0 讨论(0)
提交回复
热议问题