2

我想在我的项目中支持拆分 zip 文件,并在 zip 文件是否拆分的情况下有不同的实现。如何检查 zip 文件是否已拆分?

    using Ionic.Zip;
    protected static bool IsZipFileSplit(string filePath)
    {
        try
        {
            ZipFile zipFile = new ZipFile(filePath);
            bool isSplit = ?????
            return isSplit;
        }
        catch (ZipException) { }
        catch (IOException) { }
     }

目前我正在使用 Ionic.Zip (DotNetZip Library)。据我了解,它不会导出有关 zip 文件是否拆分的任何公共数据。它确实具有公共属性 NumberOfSegmentsForMostRecentSave,但该值仅指当前 zip 文件的最后一次保存,而不是使用现有拆分 zip 文件路径打开的新 zip 文件。

4

1 回答 1

0

Ionic.Zip 库当时不支持处理拆分的 zip 文件。经过我们的研究,我们选择使用支持拆分 zip 文件的DotNetZip 库。

  • 要检查 zipFile 是否被拆分,您可以查看 zipFile.Info 字符串,其中将提及它包含的段数(“磁盘”)。如果数字为 0,则不拆分文件。

取自 DotNetZip.ZipFile.Info 属性:

 public string Info
{
  get
  {
    StringBuilder stringBuilder = new StringBuilder();
    ...
    stringBuilder.Append(string.Format("     disk with CD: {0}\n", (object)this._diskNumberWithCd));
    return stringBuilder;
   }
}
于 2019-08-14T13:46:30.090 回答