C++BuilderでTJvSearchFilesを使ってみる

C++BuilderでTJvSearchFilesを使ってみる。

■使い方

  1. RootDirectoryプロパティで検索するルートディレクトリを指定します
    JvSearchFiles1->RootDirectory = L"C:\\test";
    
  2. DirOptionプロパティでサブディレクトリを検索するかどうかを指定します。
    //ルートディレクトリとそのサブディレクトリのみ
    JvSearchFiles1->DirOption = doIncludeSubDirs;
    
  3. Optionsプロパティで検索処理の振る舞いを指定します。
    JvSearchFiles1->Options << soSearchFiles; //ファイルを探します。
    JvSearchFiles1->Options << soSearchDirs;  //ディレクトリを探します。
    
  4. FileParamsプロパティやDirParamsプロパティで検索対象の条件を指定します。
    //ファイルサイズが1バイト以上のファイルを検索する
    JvSearchFiles1->FileParams->MinSize = 1;
    JvSearchFiles1->FileParams->SearchTypes << stMinSize;
    
  5. Searchメソッドで検索を開始します。
    bool ret = JvSearchFiles1->Search();
    
  6. Filesプロパティ、Directoriesプロパティ、TotalDirectoriesプロパティ、TotalFilesプロパティ、TotalFileSizeプロパティなどで検索結果を取得します。

■主なプロパティ

  • Filesプロパティ

    検索結果のファイル名が格納されます。

    OptionsプロパティにsoStripDirsが含まれる時は、ファイル名のみ格納されます。
    OptionsプロパティにsoStripDirsが含まれない時は、ファイル名はフルパスで格納されます。

    OptionsプロパティにsoOwnerDataが含まれる時は、Filesプロパティに格納されません。
    OptionsプロパティにsoSearchFilesが含まれない時は、Filesプロパティに格納されません。

  • Directoriesプロパティ

    OptionsプロパティにsoStripDirsが含まれる時は、ディレクトリ名のみ格納されます。
    OptionsプロパティにsoStripDirsが含まれない時は、ディレクトリ名はフルパスで格納されます。

    OptionsプロパティにsoOwnerDataが含まれる時は、Directoriesプロパティに格納されません。
    OptionsプロパティにsoSearchDirsが含まれない時は、Directoriesプロパティに格納されません。

  • DirOptionプロパティ

    サブディレクトリを検索するかどうかを指定します。

  • RootDirectoryプロパティ

    検索するルートディレクトリを指定します。

  • FileParamsプロパティ

    どのファイルが検索結果に含まれるかについて指定します。

  • DirParamsプロパティ

    どのディレクトリが検索結果に含まれるかについて指定します。

  • Searchingプロパティ

    検索中の時はtrueを返します。

  • RecurseDepthプロパティ

    検索するサブディレクトリの最大の深さを指定します。
    0を指定すると、ディレクトリを探します。
    ルートディレクトリは深さ1、ルートディレクトリのサブディレクトリは深さ1、ルートディレクトリのサブディレクトリのサブディレクトリは深さ2になります。

  • TotalFilesプロパティ

    検索して見つかったファイルの数を返します。

  • TotalFileSizeプロパティ

    検索して見つかったファイルとディレクトリの総バイト数を返します。

  • TotalDirectoriesプロパティ

    検索して見つかったディレクトリの総数を返します。

■主なメソッド

  • Searchメソッド

    エラーが発生した、またはユーザーによって中止された時はfalseを返します。

  • Abortメソッド

    検索処理を中止します。
    OnProgressイベントの中で呼ぶことができます。

■主なイベント

  • OnBeginScanDirイベント

    ディレクトリの検索を開始した時に発生します。

    引数ANameにディレクトリのフルパスが渡されます。

  • OnCheckイベント

    プログラムで検索条件に一致するかどうかを判定する時はOnCheckイベントを使用します。
    検索結果に含める時は引数Resultをtrueにします。
    検索中の対象はFindDataプロパティで得ることができます。

    void __fastcall TForm1::JvSearchFiles1Check(TObject *Sender, bool &Result)
    {
      // "TEST"の文字がファイル名に含まれているファイルを検索する
      UnicodeString FileName = JvSearchFiles1->FindData.cFileName;
      Result = (FileName.UpperCase().Pos("TEST") > 0);
    }
    
  • OnFindDirectoryイベント

    ディレクトリが見つかった時に発生します。

    引数ANameにディレクトリのフルパスが渡されます。

  • OnFindFileイベント

    ファイルが見つかった時に発生します。

    引数ANameにファイルのフルパスが渡されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください