使用节点 js 递归地监视文件和文件夹(也可以在更改时获取信息)
Watch files and folders recursively with node js ( Also get info whenever changes )
我想在特定目录中更改文件和文件夹时查看它们。 fs.watch 表现不错,但没有提供足够的信息来说明更改了哪个文件或文件夹。看文件必须用什么获取详细信息
我猜你使用 the fs.watch()
function to do this. It works somewhat differently on different OSs。只有在 Windows 和 MacOS 上 { recursive: true }
选项才有效。在其他操作系统上(如果您正在编写可移植代码,实际上在所有操作系统上)您还必须监视您想要的所有子目录。
如你所知,它是这样工作的。知道文件名后,您可以 use fs.stat()
to learn more about the file from the 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()
没有给您足够的信息,您可能需要阅读文件本身才能弄清楚。
我想在特定目录中更改文件和文件夹时查看它们。 fs.watch 表现不错,但没有提供足够的信息来说明更改了哪个文件或文件夹。看文件必须用什么获取详细信息
我猜你使用 the fs.watch()
function to do this. It works somewhat differently on different OSs。只有在 Windows 和 MacOS 上 { recursive: true }
选项才有效。在其他操作系统上(如果您正在编写可移植代码,实际上在所有操作系统上)您还必须监视您想要的所有子目录。
如你所知,它是这样工作的。知道文件名后,您可以 use fs.stat()
to learn more about the file from the 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()
没有给您足够的信息,您可能需要阅读文件本身才能弄清楚。