ZipRootPackage

ZipRootPackage class

表示允许使用 ZIP 存档中的元数据的根包。

public class ZipRootPackage : RootMetadataPackage

特性

姓名 描述
Count { get; } 获取元数据属性的数量。
FileType { get; } 获取文件类型元数据包。
Item { get; } 获取MetadataProperty具有指定名称.
Keys { get; } 获取元数据属性名称的集合。
MetadataType { get; } 获取元数据类型。
PropertyDescriptors { get; } 获取描述符集合,其中包含有关可通过 GroupDocs.Metadata 搜索引擎访问的属性的信息。
ZipPackage { get; } 获取 ZIP 元数据包。

方法

姓名 描述
AddProperties(Func<MetadataProperty, bool>, PropertyValue) 添加满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。
Contains(string) 确定包是否包含具有指定名称的元数据属性。
virtual FindProperties(Func<MetadataProperty, bool>) 查找满足指定谓词的元数据属性。 搜索是递归的,因此它也会影响所有嵌套包。
GetEnumerator() 返回一个遍历集合的枚举器。
virtual RemoveProperties(Func<MetadataProperty, bool>) 删除满足指定谓词的元数据属性。
override Sanitize() 从包中删除可写元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。
SetProperties(Func<MetadataProperty, bool>, PropertyValue) 设置满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。 此方法是以下方法的组合AddPropertiesUpdateProperties 如果现有属性满足谓词,则更新其值。 如果包中缺少满足谓词的已知属性,则将其添加到包中。
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) 更新满足指定谓词的已知元数据属性。 该操作是递归的,因此它也会影响所有嵌套包。

评论

了解更多

例子

以下代码片段显示了如何从 ZIP 存档中获取元数据。

Encoding encoding = Encoding.GetEncoding(866);

using (Metadata metadata = new Metadata(Constants.InputZip))
{
    var root = metadata.GetRootPackage<ZipRootPackage>();

    Console.WriteLine(root.ZipPackage.Comment);
    Console.WriteLine(root.ZipPackage.TotalEntries);

    foreach (var file in root.ZipPackage.Files)
    {
        Console.WriteLine(file.Name);
        Console.WriteLine(file.CompressedSize);
        Console.WriteLine(file.CompressionMethod);
        Console.WriteLine(file.Flags);
        Console.WriteLine(file.ModificationDateTime);
        Console.WriteLine(file.UncompressedSize);

        // 对文件名使用特定的编码
        Console.WriteLine(encoding.GetString(file.RawName));
    }
}

也可以看看