0

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

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

我的代码:

 while (getNextEntry)
 {

    ZipEntry entry = inStream.GetNextEntry();

    getNextEntry = (entry != null);

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

3 回答 3

0

使用FileVersionInfo.GetVersionInfo

于 2009-06-26T22:43:06.563 回答
0

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

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

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

于 2009-06-26T22:47:18.257 回答
0

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

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

于 2009-06-28T10:25:21.527 回答