C# - 如何检查zip文件是否被拆分?

时间:2018-01-23 12:10:29

标签: c# split zip dotnetzip ionic-zip

我想在我的项目中支持拆分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文件。

1 个答案:

答案 0 :(得分:0)

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

  • 要检查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;
   }
}