Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用node js递归地查看文件和文件夹(每次更改时也会获取信息)_Node.js_File_Fs_Watch - Fatal编程技术网

Node.js 使用node js递归地查看文件和文件夹(每次更改时也会获取信息)

Node.js 使用node js递归地查看文件和文件夹(每次更改时也会获取信息),node.js,file,fs,watch,Node.js,File,Fs,Watch,每当文件和文件夹在特定目录中发生更改时,我都要监视它们。fs.watch做得很好,但没有提供足够的关于更改了哪个文件或文件夹的信息。在观看文件时,我必须使用什么来获取详细信息。我想您通常会这样做。它起作用了。只有在Windows和MacOS上,{recursive:true}选项才起作用。在其他操作系统上(如果您正在编写可移植代码,那么在所有操作系统上),您也必须查看所有您想要的子目录 如你所知,它是这样工作的。一旦知道文件名,您就可以从中了解有关该文件的更多信息。(此示例代码未调试) fs.w

每当文件和文件夹在特定目录中发生更改时,我都要监视它们。fs.watch做得很好,但没有提供足够的关于更改了哪个文件或文件夹的信息。在观看文件时,我必须使用什么来获取详细信息。

我想您通常会这样做。它起作用了。只有在Windows和MacOS上,
{recursive:true}
选项才起作用。在其他操作系统上(如果您正在编写可移植代码,那么在所有操作系统上),您也必须查看所有您想要的子目录

如你所知,它是这样工作的。一旦知道文件名,您就可以从中了解有关该文件的更多信息。(此示例代码未调试)

fs.watch('whatever/directory/name',{},(eventType,filename)=>{
如果(eventType==='change'){
fs.stat(文件名,函数(err,stat){
如果(错误)返回控制台。错误(错误)
const modTime=stat.mtimeMs
常量大小=stat.size
如果(stat.isFile()){
/*这是一个普通文件*/
}
} )
});

如果
fs.stat()
没有为您提供足够的信息,您可能需要阅读文件本身来解决问题。

非常感谢。我不知道
{recursive:true}
选项。fs.stat非常棒。