[英]electron - node.js - fs.readFileSync requires admin privileges when electron is built and in Program Files
[英]How to merge all PART files in electron js using Node fs module
我在本地目录之一中有零件文件列表
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)
我想将所有零件文件合并到一个零件文件中。
我尝试了以下方法,但无法实现。
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等,
您可以为管道内的每个readstream创建writestream吗? 像下面的例子。 希望这会帮助你。 尝试侦听写入流中的错误。
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)});
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.