C# SharpZipLib~文件版本

C# SharpZipLib~文件版本,c#,zip,sharpziplib,C#,Zip,Sharpziplib,如何获取文件的版本属性 我尝试了“版本”道具,但它为所有文件提供了相同的编号 我的代码: while (getNextEntry) { ZipEntry entry = inStream.GetNextEntry(); getNextEntry = (entry != null); if (getNextEntry) { string fileType = Path.GetExtension(entry.Name); st

如何获取文件的版本属性

我尝试了“版本”道具,但它为所有文件提供了相同的编号

我的代码:

 while (getNextEntry)
 {

    ZipEntry entry = inStream.GetNextEntry();

    getNextEntry = (entry != null);

    if (getNextEntry)
    {
        string fileType = Path.GetExtension(entry.Name);
        string version = "unavailable"; // entry.Version.ToString();
              // etc ...
     }
  }

使用。

这是正确的行为。我不熟悉SharpZipLib,但在.zip格式中,field version包含解压缩此特定文件所需的PkZip软件版本(或创建此文件的软件版本)。而且,通常,整个zip文件都是用一个工具创建的,所以这样的字段将包含相同的版本

同样,zip中的版本不是文件版本,而是打包此文件的软件版本


您可以阅读更多关于zip格式的信息(zip格式的主要信息来源)。

zip条目中的版本是“需要解压缩的版本”,它指的是解压缩工具必须支持的zip规范版本,以便正确解压缩该条目。这与打包zip的工具版本不同。此外,zip存档中的所有条目的数字通常相同,但这不是必需的。不同的条目可以启用不同的功能-最常见的变体是加密和zip64编码。第一个条目可能是未加密的,在这种情况下,需要提取的版本为20。下一个条目可能使用zip64扩展,在这种情况下,需要提取的版本将是45


当构建打包或解包拉链的工具或库时,这个版本号最有趣。如果您使用的是zip库,则不必关心它。图书馆应该为您保管好它。

我很感谢您的快速回答,不过,现在我正在阅读ZipInputStream。在文件解压后,这肯定会起作用。在仍然保存在zip文件中时,是否无法读取文件版本?