2017-10-20 56 views
0

我在zip中有很多.json文件和一個.xml文件。我想在我做fs.createReadStream時首先查看XML文件,然後對列表進行排序。用fs.createReadStream排序列表

我現在在做什麼

fs.createReadStream(savePathZip) 
    .pipe(unzip.Parse()) 
    .on('entry', function(entry) { 
} 

回答

0

您可以在返回(如unzip文檔說明)當流「關閉」事件釋放出來,解決了一個無極的函數把這個包,並在諾言解決方案會返回排序後的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 */ 
    }) 
})