Javascript 文件更改时获取目录mtime
我正在尝试获取目录上的mtime。我不确定这是否是正确的方法,但是当目录中的文件发生更改时,如何获取mtime 这就是我目前正在做的:Javascript 文件更改时获取目录mtime,javascript,node.js,Javascript,Node.js,我正在尝试获取目录上的mtime。我不确定这是否是正确的方法,但是当目录中的文件发生更改时,如何获取mtime 这就是我目前正在做的: let statTs = fs.statSync(cfgDir); 然后,我将检查该时间与另一个目录或文件的时间,以确定是否需要运行构建命令: if (!statJs || (statTs && statJs && statTs.mtime > statJs.mtime)) { cp.execSync(`${tsc
let statTs = fs.statSync(cfgDir);
然后,我将检查该时间与另一个目录或文件的时间,以确定是否需要运行构建命令:
if (!statJs || (statTs && statJs && statTs.mtime > statJs.mtime)) {
cp.execSync(`${tscPath} -p "${configFile}"`);
}
如果我转储statTs的mtime:
即使我修改了目录中的文件,我也总是得到相同的时间。有没有办法在文件更改时获得该时间
我使用的是windows计算机,因此可能在不同的操作系统上工作方式不同…我找到的最佳解决方案是对所有文件进行全局处理,并获得最新更改时间,如下所示:
private getDirMtime(dirpath) {
let stat = fs.statSync(dirpath)
if(stat.isFile()){ return Promise.resolve(stat.mtime) }
return new Promise(resolve => {
let lastMod = new Date(1970, 0)
glob(path.join(dirpath, '**/*.*'), files => {
files.forEach(file => {
let stat = fs.statSync(file)
if(stat.isFile() && stat.mtime > lastMod) {
lastMod = stat.mtime
}
})
return resolve(lastMod)
})
})
}
private getDirMtime(dirpath) {
let stat = fs.statSync(dirpath)
if(stat.isFile()){ return Promise.resolve(stat.mtime) }
return new Promise(resolve => {
let lastMod = new Date(1970, 0)
glob(path.join(dirpath, '**/*.*'), files => {
files.forEach(file => {
let stat = fs.statSync(file)
if(stat.isFile() && stat.mtime > lastMod) {
lastMod = stat.mtime
}
})
return resolve(lastMod)
})
})
}