【发布时间】:2021-07-18 12:06:06
【问题描述】:
我想查看特定目录中的文件和文件夹何时发生变化。 fs.watch 做得很好,但没有提供有关更改了哪个文件或文件夹的足够信息。观看文件时我必须使用什么来获取详细信息。
【问题讨论】:
我想查看特定目录中的文件和文件夹何时发生变化。 fs.watch 做得很好,但没有提供有关更改了哪个文件或文件夹的足够信息。观看文件时我必须使用什么来获取详细信息。
【问题讨论】:
我猜你使用the fs.watch() function 来做到这一点。它可以工作somewhat differently on different OSs。只有在 Windows 和 MacOS 上,{ recursive: true } 选项才有效。在其他操作系统上(如果您正在编写可移植代码,实际上在所有操作系统上)您还必须查看您想要的所有子目录。
如您所知,它是这样工作的。知道文件名后,您可以use fs.stat() 从Stats object 了解有关该文件的更多信息。 (此示例代码未调试)
fs.watch('whatever/directory/name', { }, (eventType, filename) => {
if (eventType === 'change') {
fs.stat (filename, function (err, stat) {
if(err) return console.error(err)
const modTime = stat.mtimeMs
const size = stat.size
if (stat.isFile()) {
/* this is an ordinary file */
}
} )
});
如果fs.stat() 没有为您提供足够的信息,您可能需要阅读文件本身才能弄清楚。
【讨论】:
{recursive: true} 选项。而且 fs.stat 太棒了。