如果我有 FileStream,如何检查它是否来自 ZipArchive? 现在我使用一个 try catch 语句来抛出一个
'System.IO.InvalidDataException:'找不到中央目录记录末尾。'
如果流不是来自 ZipArchive。
try
{
ZipArchive za = new ZipArchive(fIleStream, ZipArchiveMode.Read);
...
}
catch (Exception e)
{
...
}
您可以嗅探流的前两个字节,看看它是否与 zip 签名匹配。
如此处所述 https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
应该是 0x504b 作为 zip 数据。