用nodejs读取大目录

问题描述 投票:1回答:1

假设我有一个大目录,也许在目录中有10,000,000多个项目。

如果我使用

fs.readdir(dir, (err, items) => {});

它将大量加载到内存中,因为items数组将是1000万个项目。有没有办法一次读取目录15000个项目,有一些linux命令和子进程?

node.js macos unix
1个回答
1
投票

要将文件夹/目录数据流式传输到Node.js,您可以使用:

const rl = require('readline');
const cp = require('child_process');

const k = cp.spawn('bash');
k.stdin.end(`find . -maxdepth 1 -type f`);

rl.createInterface({
  input: k.stdout,
})
.on('line', v => {
    // new file path
});

更多信息可以在这个Github线程上找到:https://github.com/nodejs/node/issues/21804

© www.soinside.com 2019 - 2024. All rights reserved.