gpt4 book ai didi

node.js - NodeJS逐个文件读取巨大的目录

转载 作者:太空宇宙 更新时间:2023-11-03 22:10:16 25 4
gpt4 key购买 nike

我有一个由空文件组成的目录,我想遍历它们的每个名称。然而,我有近 2000 万个这样的空文件,并且使用 fs.readdirfs.readdirSync 将它们全部加载到内存中都会花费不必要的时间并吞噬我的所有内存系统。

有什么办法可以解决这个问题?

理想情况下,我会寻找以异步方式逐个文件读取的东西,其代码类似于以下内容:

readdirfilebyfile((filename)=>{....}) 这样我就不会将整个文件列表保留在内存中。

我当前使用的解决方案是将所有文件名转储到一个文件中,然后将其作为数据流读取。然而,这只是逃避一个我应该知道如何解决而不诉诸于此的问题。

最佳答案

这个怎么样? pv 是管道查看器,是 bash 管道的速率限制器。

const spawn = require('child_process').spawn;
const exec = require('child_process').exec;
const tail = spawn('tail -f /tpm/filelist | pv -l -L 10 -q');
tail.stdout.on('data', fileName => {
// parse filenames here
console.log(fileName);
});
exec('ls > /tpm/filelist');

关于node.js - NodeJS逐个文件读取巨大的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44220273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com