2016-07-03 42 views
0

我想爲ZIP文件中的所有文件獲取MD5校驗和。我目前正在使用adm-zip,因爲我讀了我可以將zip內容讀入內存,而無需將文件提取到磁盤。但我無法讀取ZIP文件中的條目數據。我的代碼如下:使用adm-zip獲取zip中條目的md5校驗和

var zip = new AdmZip(path); 
zip.getEntries() 
    .map(entry => { console.log(entry.entryName, entry.data); }); 

entryName可以閱讀,所以打開和閱讀拉鍊的作品。但data總是undefined。我看過data不是真的是這個方法讀取一個條目的數據,但我不確定如何實際讀取它。

回答

0

要讀取條目的數據,必須調用條目對象的方法getData(),該條目返回Buffer。以下是更新的代碼段,其在我結束工作:

var zip = new AdmZip(path); 
zip.getEntries().map(entry => { 
    const md5Hash = crypto.createHash('md5').update(entry.getData()).digest('hex'); 
    console.log(md5Hash); 
}); 

我使用的基本crypto模塊生成MD5哈希(十六進制格式)。不要忘記將它添加到您的文件頂部的需求列表中:const crypto = require('crypto');