「サブフォルダも含めてファイル検索コンポーネント」 MyDigDirectory V1.0 2020/05/29

  MyDigDirectory10.zip 45.7 KB (46,820 バイト)

条件に一致するファイルをサブフォルダも含めて探すコンポーネントです。
コンポーネントやソース等すべてフリーですので、自由に変更・使用してください。

【1】ファイル群
解凍すると下記のファイル群が展開されます。
MyDigDirectory.pas (コンポーネント本体のソースです)
MyDigDirectory.dcr (コンポーネントのアイコンのリソースです)
「Helpフォルダ」 (ヘルプファイル群)
「sampleフォルダ」 (実行例のサンプルファイル群)

【2】環境
Delphi5で作成しWindows10で動作確認しています。

【3】インストール
任意のフォルダに「
MyDigDirectory.pas」と「MyDigDirectory.dcr」 を置いて、
コンポーネントメニューのインストールからインストールしてください。
「Samples」タブに(水色のトレイにDigと書いてある模様の)アイコンが登録されます。


【4】使用方法
・ フォームに「MyDigDirectory」コンポーネントを置いて使用します。
コンポーネントのライブラリパスを設定しておいてください。
FileMask
見つけるべき対象のファイルとそうでないファイルとを分けるフィルタ文字列を設定します。
Root
検索対象フォルダの最上位のフォルダを指定します。実行の際最初に一度だけ参照されます。
OnFound
ファイルが見つかった場合、サブフォルダが見つかった場合に起こるイベントです。

sampleフォルダのProject1.dprを読み込んで実行してみてください。
検索中に、検索を中止できるのが特徴です。


【5】
メソッド・プロパティ・イベント
/// <summary></summary>フォルダ検索
    procedure Execute();
  published
    {add}property Cancel:boolean write SetCancel default false;//処理中断
    {add}property DigDir:boolean write SetDigDir default true;//サブフォルダ含める
    /// <value></value>ファイル検索マスク文字列
    property FileMask: string read FFileMaskStr write SetFileMask;
    /// <value></value>検索ルートフォルダ
    property Root: string read FRoot write FRoot;
    /// <summary></summary>条件に一致するファイルが見つかった場合のイベント
    property OnFound: TFoundEvent read FOnFound write FOnFound;

【6】謝辞
オリジナルはくろねこさんの「くろねこ研究所」の
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0061
[Delphi] 条件に一致するファイルをサブフォルダも探す
2005年11月22日(火) 17:23 JST
投稿者: くろねこ
FileMask
見つけるべき対象のファイルとそうでないファイルとを分けるフィルタ文字列を設定します。
フィルタ文字列の設定方法は Mask ユニットの TMask の記述を参照してください。
Root
検索対象フォルダの最上位のフォルダを指定します。
実行の際最初に一度だけ参照されます。
OnFound
ファイルが見つかった場合、サブフォルダが見つかった場合に起こるイベントです。
詳細はコメントを参考にしてください。
です。
{add}と{change}の部分は私(Arihiko)が追加・変更しました。
    //処理中断[True](書き込み専用プロパティ)
    property Cancel:boolean write SetCancel default false;
    //フォルダの場合掘る[True]かどうか(書き込み専用プロパティ)
    property DigDir:boolean write SetDigDir default true;

【7】更新履歴
2020/05/29 V1.0 初回原型、Windows10環境でDelphi5にて作成。