你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
Delphi实现按文件摘要属性查找文件(三)
 

其中Create方法用于创建新的属性集;Open方法用于打开已创建的属性集;Delete方法用于删除已存在的属性集;Enum方法用于枚举所有属性集。

要实现根据文件摘要属性查找文件,首先需要调用StgOpenStorageEx函数打开文件系统已存在的根存储对象IStorage,与StgOpenStorage函数不同的是,StgOpenStorageEx函数不仅能打开复合文件,还能够打开NTFS卷非复合文件。然后使用as操作符从返回的根存储对象获取IPropertySetStorage,通过调用IPropertySetStorage接口的Open方法获取一个对IPropertyStorage接口的引用,最后通过调用IPropertyStorage接口的ReadMultiple方法来获取相应属性的值,根据取得的属性值与需要查找的文件摘要属性值相比较即可确定该文件是否满足要求。

 

3 实现代码

    为简化操作,将摘要属性的读取过程封装在一个独立的类中,类TPropertySet的代码如下所示:

unit PropertySet;

 

interface

 

uses Windows, SysUtils, ComObj, ActiveX;

 

type

  TPropertySet = class

  private

    FFileName: WideString;

    FActive: Boolean;

    FPropertySetStorage: IPropertySetStorage;

    FPropertyStorage: IPropertyStorage;

    FStorage: IStorage;

    FStreamGUID: TGUID;

 

    procedure SetActive(const Value: Boolean);

    procedure SetFileName(const Value: WideString);

    procedure SetStreamGUID(const Value: TGUID);

  protected

    procedure InternalOpen; dynamic;

    procedure InternalClose; dynamic;

  public

    constructor Create;

    destructor Destroy; override;

    procedure Open;

    procedure Close;

    function GetPropertyByName(APropertyName: WideString): TPropVariant;

    function GetPropertyByID(APropertyID: Integer): TPropVariant;

 

    property Active: Boolean read FActive write SetActive;

    property FileName: WideString read FFileName write SetFileName;

    property StreamGUID: TGUID read FStreamGUID write SetStreamGUID;

  end;

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089