【问题标题】:SharpZipLib ~ File VersionSharpZipLib ~ 文件版本
【发布时间】:2009-06-26 22:39:04
【问题描述】:

如何获取文件的版本属性?

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

我的代码:

 while (getNextEntry)
 {

    ZipEntry entry = inStream.GetNextEntry();

    getNextEntry = (entry != null);

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

【问题讨论】:

    标签: c# zip sharpziplib


    【解决方案1】:

    这是正确的行为。我不熟悉 SharpZipLib,但在 .zip 格式本身中,字段版本包含提取此特定文件所需的 PkZip 软件版本(或创建此文件的软件版本)。而且,与往常一样,整个 zip 文件都是使用一个工具创建的,因此此类字段将包含相同的版本。

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

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

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 感谢您的快速回答,但是,此时我只是阅读 ZipInputStream。这肯定适用于文件被解压缩后。有没有办法在仍然坐在 zip 文件中时读取文件版本?
      【解决方案3】:

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

      在构建打包或解压缩 zip 的工具或库时,这个版本号非常有趣。如果您使用 zip 库,则不必关心它。图书馆应该会为您处理好它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-15
        相关资源
        最近更新 更多