我正在尝试为ZIP文件中的所有文件获取MD5校验和。我目前正在使用adm-zip
,因为我读过我可以将zip内容读入内存而无需将文件提取到磁盘。但我无法读取ZIP文件中的条目数据。我的代码如下:
var zip = new AdmZip(path);
zip.getEntries()
.map(entry => { console.log(entry.entryName, entry.data); });
可以阅读entryName
,因此打开和阅读zip工作。但data
总是undefined
。我读到data
不是真正读取条目数据的方法,但我不确定如何实际读取它。
答案 0 :(得分: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');