我有一个根目录,例如事件。
每个事件都是一个包含文件的目录,并且有数百万个事件。
事件目录中的目录:
...
2018-01-17-18:40:51.151343-1bb809
2018-01-17-20:55:22.627688-26ada5
2018-01-17-20:55:27.919532-8243cd
2018-01-17-20:56:30.743072-94e913
2018-01-17-20:57:39.824845-64ccb7
...
我想做的是:
逐个加载目录,而不是在一次调用中加载,例如的 fs.readDir
由于目录名称带有时间戳,我希望能够使用
e.g。
{ time:
$gte: t1
$lte: t2
}
我如何在没有同时读取内存中的所有目录的情况下执行此查询?
我正在使用NodeJs 9
答案 0 :(得分:1)
使用纯node.js File System functions你无法做到。
fs.readdir存在,但它会立即返回所有名称。
你能做什么
使用node.js执行命令行:
所以你可以做find -regex "Here the regexp to match your dates"
来自堆栈的示例 here by @hexacyanide :
const util = require('util');
const exec = util.promisify(require('child_process').exec);
async function ls() {
const { stdout, stderr } = await exec('ls');
console.log('stdout:', stdout);
console.log('stderr:', stderr);
}
ls();