TNB Library
公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CFileFinder クラス

ファイル検索クラス [詳解]

#include <TnbFileFinder.h>

+ CFileFinder の継承関係図

公開型

enum  EFindType { ALL , FILE_ONLY , DIR_ONLY }
 検索タイプ [詳解]
 

公開メンバ関数

iterator begin (void)
 [反復] 先頭iterator. [詳解]
 
 CFileFinder (void)
 コンストラクタ [詳解]
 
iterator end (void)
 [反復] 最後iterator. [詳解]
 
void Finish (void)
 [設定] 検索終了. [詳解]
 
const WIN32_FIND_DATA & Get (void) const
 [取得] 検索情報取得 [詳解]
 
CStr GetFoundName (void) const
 [取得] 検索ファイル名取得 [詳解]
 
bool IsDirectory (void) const
 [確認] ディレクトリか? [詳解]
 
bool IsFinding (void) const
 [確認] 検索中確認 [詳解]
 
bool Next (void)
 [検索] 次検索 [詳解]
 
const WIN32_FIND_DATA * operator-> (void) const
 [取得] 検索情報取得 [詳解]
 
bool Start (LPCTSTR lpszPath, LPCTSTR lpszMask=_T("*.*"), EFindType type=ALL)
 [検索] 検索開始 [詳解]
 
virtual ~CFileFinder (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual void OnFinish (void)
 [通知] 検索終了通知 [詳解]
 
virtual bool OnNext (WIN32_FIND_DATA &_data)
 [通知] 次検索通知 [詳解]
 
virtual bool OnStart (WIN32_FIND_DATA &_data, LPCTSTR lpszName)
 [通知] 検索開始通知 [詳解]
 

詳解

ファイル検索クラス

指定のディレクトリからファイルを検索するためのクラスです。
覚え書き
検索時、ディレクトリ情報、[.][..]は、除外されます。
使用例
    CFileFinder ff;
    if ( ff.Start(_T(".\\*.*")) )
    {
        do
        {
            TRACE1("  found = %s\n", ff->cFileName);
        } while ( ff.Next() );
    }
    
使用例(iterator使用)
    CFileFinder ff;
    if ( ff.Start(_T(".\\*.*")) )
    {
        for ( CFileFinder::iterator i = ff.begin(); i != ff.end(); i++ )
        {
            TRACE1("  found = %s\n", i->cFileName);
        }
    }
    
覚え書き
iterator 操作時、元の CFileFinder が使用されます。
必要ファイル
TnbFileFinder.h
日付
06/11/30 新規
08/03/23 構造変更。

TnbFileFinder.h389 行目に定義があります。

列挙型メンバ詳解

◆ EFindType

enum EFindType
inherited

検索タイプ

列挙値
ALL 

全部対象

FILE_ONLY 

ファイルのみ

DIR_ONLY 

ディレクトリのみ

TnbFileFinder.h36 行目に定義があります。

構築子と解体子

◆ CFileFinder()

CFileFinder ( void  )

コンストラクタ

TnbFileFinder.h395 行目に定義があります。

◆ ~CFileFinder()

virtual ~CFileFinder ( void  )
virtual

デストラクタ

TnbFileFinder.h400 行目に定義があります。

関数詳解

◆ begin()

iterator begin ( void  )
inherited

[反復] 先頭iterator.

先頭要素を指す反復子を取得

覚え書き
Find() で、成功してからイテレータを取得します。
戻り値
iterator

TnbFileFinder.h92 行目に定義があります。

◆ end()

iterator end ( void  )
inherited

[反復] 最後iterator.

最後要素の次を指す反復子を取得

戻り値
iterator

TnbFileFinder.h102 行目に定義があります。

◆ Finish()

void Finish ( void  )
inherited

[設定] 検索終了.

覚え書き
検索中の場合、検索を停止します( Next() メソッドは false を返すようになります)。

TnbFileFinder.h123 行目に定義があります。

◆ Get()

const WIN32_FIND_DATA & Get ( void  ) const
inherited

[取得] 検索情報取得

戻り値
ファイル情報の参照。
例外
CEmptyException未検索、あるいは未発見時に本メソッドをコールすると、スローされます。

TnbFileFinder.h213 行目に定義があります。

◆ GetFoundName()

CStr GetFoundName ( void  ) const
inherited

[取得] 検索ファイル名取得

戻り値
ファイル名

TnbFileFinder.h233 行目に定義があります。

◆ IsDirectory()

bool IsDirectory ( void  ) const
inherited

[確認] ディレクトリか?

覚え書き
検索中の時、発見した情報がディレクトリか否か調べることが出来ます。
戻り値
trueディレクトリ
falseファイル or 未検索

TnbFileFinder.h250 行目に定義があります。

◆ IsFinding()

bool IsFinding ( void  ) const
inherited

[確認] 検索中確認

戻り値
true検索中。
falseしていない。

TnbFileFinder.h203 行目に定義があります。

◆ Next()

bool Next ( void  )
inherited

[検索] 次検索

覚え書き
Find() で true の場合、次にこのメソッドを使用します。その後繰り返して 本メソッド使うことで複数の情報を得ることが出来ます。
戻り値
true一つ以上発見。発見した内容はGetメソッドで取得可能。
false未発見。

TnbFileFinder.h176 行目に定義があります。

◆ OnFinish()

virtual void OnFinish ( void  )
protectedvirtual

[通知] 検索終了通知

覚え書き
検索中の場合、検索を停止します( OnNext() メソッドは false を返すようになります)。

CAbstractFileFinderを実装しています。

TnbFileFinder.h442 行目に定義があります。

◆ OnNext()

virtual bool OnNext ( WIN32_FIND_DATA &  _data)
protectedvirtual

[通知] 次検索通知

覚え書き
Find() で true の場合、次にこのメソッドを使用します。その後繰り返して 本メソッド使うことで複数の情報を得ることが出来ます。
引数
[out]_data発見した場合、発見情報が格納されます。
戻り値
true一つ以上発見。
false未発見。

CAbstractFileFinderを実装しています。

TnbFileFinder.h429 行目に定義があります。

◆ OnStart()

virtual bool OnStart ( WIN32_FIND_DATA &  _data,
LPCTSTR  lpszName 
)
protectedvirtual

[通知] 検索開始通知

引数
[out]_data発見した場合、発見情報が格納されます。
[in]lpszName検索パス指定。ワイルドカードによる指定が必要です。
戻り値
true一つ以上発見。
false未発見。

CAbstractFileFinderを実装しています。

TnbFileFinder.h414 行目に定義があります。

◆ operator->()

const WIN32_FIND_DATA * operator-> ( void  ) const
inherited

[取得] 検索情報取得

戻り値
ファイル情報の参照。
例外
CEmptyException未検索、あるいは未発見時に本メソッドをコールすると、スローされます。

TnbFileFinder.h224 行目に定義があります。

◆ Start()

bool Start ( LPCTSTR  lpszPath,
LPCTSTR  lpszMask = _T("*.*"),
EFindType  type = ALL 
)
inherited

[検索] 検索開始

覚え書き
検索は必ずこのメソッドから開始します。
引数
lpszPath検索パス指定。
lpszMask検索マスク指定。ワイルドカードによる指定が必要です。省略すると *.* が指定されます。
type検索タイプ。
戻り値
true一つ以上発見。発見した内容は Get() メソッド等で取得可能。
false未発見。

TnbFileFinder.h140 行目に定義があります。