我有很多.json文件和一个.xml的压缩文件。我想在fs.createReadStream
首先查看XML文件时对列表进行排序。
我现在做什么
fs.createReadStream(savePathZip)
.pipe(unzip.Parse())
.on('entry', function(entry) {
}
答案 0 :(得分:0)
你可以将它包装在一个函数中,该函数返回一个Promise,当它关闭'发出事件(如unzip
文档中所述),并在promise解析中返回zip中的文件的最终列表,但是要对它们进行排序。一个例子可能是:
function getFileList(savePathZip) {
return new Promise((resolve, reject) => {
var list = []
fs.createReadStream(savePathZip)
.pipe(unzip.Parse())
.on('entry', entry => list.push(entry.path))
.on('error', reject)
.on('close', () => resolve(list))
})
}
然后你可以调用这个函数,它返回一个数组中文件的完整列表,然后按你喜欢的方式对它们进行排序:
getFileList(zipFilePath).then(fileArray => {
fileArray = fileArray.sort((f1, f2) => {
/* sort the list of files however you like */
})
})