📜  Node.js stats.mtime 属性(1)

📅  最后修改于: 2023-12-03 15:33:09.964000             🧑  作者: Mango

Node.js stats.mtime 属性

在 Node.js 中,stats.mtime 属性用于获取文件的最后修改时间。这个属性属于 fs.Stats 对象,可以通过 fs.stat() 方法获取。

获取文件的最后修改时间

下面是一个例子,展示了如何获取文件的最后修改时间:

const fs = require('fs');

fs.stat('file.txt', (err, stats) => {
  if (err) {
    console.error(err);
    return;
  }

  console.log(`File modified at: ${stats.mtime}`);
});

在这个例子中,我们通过 fs.stat() 方法获取了 file.txtfs.Stats 对象。然后,我们通过 stats.mtime 属性获取了文件的最后修改时间,并在控制台输出了这个时间。

使用 stats.mtime 属性判断文件是否修改过

由于 stats.mtime 属性可以获取文件的最后修改时间,我们可以使用它来判断文件是否修改过。下面是一个例子,展示了如何使用 stats.mtime 属性来判断文件是否修改过:

const fs = require('fs');

fs.stat('file.txt', (err, stats) => {
  if (err) {
    console.error(err);
    return;
  }

  const lastModified = stats.mtime.getTime();

  // 在一段时间后再次获取文件状态
  setTimeout(() => {
    fs.stat('file.txt', (err, newStats) => {
      if (err) {
        console.error(err);
        return;
      }

      const newModified = newStats.mtime.getTime();
      if (newModified > lastModified) {
        console.log('File has been modified');
      } else {
        console.log('File has not been modified');
      }
    });
  }, 5000);
});

在这个例子中,我们先获取了 file.txtfs.Stats 对象,然后通过 stats.mtime.getTime() 获取了文件的最后修改时间。接着,我们通过 setTimeout() 方法在 5 秒后再次获取文件状态,并通过 newStats.mtime.getTime() 获取了文件的最后修改时间。最后,比较这两个时间,如果最后修改时间发生了变化,则表明文件已被修改过。

总结

在 Node.js 中,stats.mtime 属性可以用于获取文件的最后修改时间,以及判断文件是否修改过。通过使用这个属性,我们可以编写出更加健壮的文件操作程序。