ファイルを含むディレクトリを開く必要があります。それぞれの readstream を開き、すべてのファイルのデータを 1 つのファイルに書き込みます。しかし、エラーが発生し続けます: EMFILE, open 'chunks/piece96.data'
ulimit は 256 でしたが、1024 に増やしました。ディレクトリには、1 つのファイルを開いて読み書きする 127 個のファイルがあります。
私のコードは以下です
var DIR='chunks/';
var files=fs.readdirSync(DIR);
var filename='bach.mp3';
files.forEach(function(singlebit){
//console.log(files);
var bit=fs.createReadStream(DIR+singlebit);
var resultfile=fs.createWriteStream(filename,{
flags:'r+',
encoding:null,
mode:0666
});
bit.on('data',function(bitdata){
resultfile.write(bitdata);
console.log(bitdata);
}).on('end',function(){
resultfile.end();
});
});
console.log('file complete');
EMI ファイル エラーを防ぐにはどうすればよいですか。readdirSync を使用していて、一度にすべてのファイルを開いているわけではないため、一度に多くのファイルを開いているわけではありません。すべてのファイルを読み取り、単一のファイルに書き込む方法が必要です。