首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Node fs模块合并电子js中的所有部件文件

如何使用Node fs模块合并电子js中的所有部件文件
EN

Stack Overflow用户
提问于 2019-01-08 06:55:37
回答 1查看 468关注 0票数 0

我在我的本地目录中有一个部件文件列表

代码语言:javascript
复制
Directory: 'C:/Users/Documents/rast'

folder: rast
|
|____ rast_001.part (approx size: 500 MB)
|
|____ rast_002.part (approx size: 500 MB)
|
|____ rast_003.part (approx size: 500 MB)
|
|____ rast_004.part (approx size: 500 MB)
|
|____ rast_005.part (approx size: 500 MB)
|
|____ rast_006.part (approx size: 500 MB)

我想将所有的部件文件合并成一个单独的部件文件。

我尝试了以下方法,但我无法做到这一点。

代码语言:javascript
复制
require('events').EventEmitter.defaultMaxListeners = 15;

//requiring path and fs modules
const path = require('path');
const fs = require('fs');

const outputPath = path.join('C:/Users/Documents/rast', 'output.part');


var w = fs.createWriteStream(outputPath, {flags: 'a'});

//joining path of directory 
const directoryPath = path.join('C:/Users/Documents', 'rast');

//passsing directoryPath and callback function
fs.readdir(directoryPath, function (err, files) {

    files.forEach(function (file) {
        const filePath = path.join('C:/Users/Documents/rast', file);
        var r = fs.createReadStream(filePath);
        r.pipe(w, { end: true });
    }
});

如果我执行此代码,它将创建一个空输出文件(大小为零)。请帮助我如何做这件事。

注:部分文件可能包含任何内容,可以是文本文件、JAR文件、EXE文件、ZIP文件、PDF等。

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 10:29:06

您能为管道中的每个读写器创建写吗?就像下面的例子。希望这能帮到你。尝试侦听写入流中的错误。

代码语言:javascript
复制
require('events').EventEmitter.defaultMaxListeners = 15;
var fs=require('fs');
var path=require('path');
fs.readdir('./',(err,files)=>{
  files.forEach((file)=>{
    if(file!='node_modules'){
        console.log('Appending file-->'+file);
        var stream= fs.createReadStream(path.join(__dirname,file))
        .pipe(fs.createWriteStream('./output.part',{flags:'a',autoClose:true})
        .on('finish',()=>{console.log('Wstrm Closed...');})
        .on('error',(err)=>{console.log('Error at writrStream-->',err)}));

        stream.on('error',(err)=>{
            console.log('Read Stream Error-->',err);
        })
        .on('close',()=>{console.log('Rdstrm closed for file-->',file)});
    }

   });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54086633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档