dcdd144598 2011-02-23 kinaba: #ifndef _KILIB_FIND_H_ dcdd144598 2011-02-23 kinaba: #define _KILIB_FIND_H_ dcdd144598 2011-02-23 kinaba: #include "types.h" dcdd144598 2011-02-23 kinaba: #include "memory.h" dcdd144598 2011-02-23 kinaba: #include "path.h" dcdd144598 2011-02-23 kinaba: #ifndef __ccdoc__ dcdd144598 2011-02-23 kinaba: namespace ki { dcdd144598 2011-02-23 kinaba: #endif dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: //@{ @pkg ki.WinUtil //@} dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // ファイル検索 dcdd144598 2011-02-23 kinaba: // dcdd144598 2011-02-23 kinaba: // Win32 APIのFindFirstFile等を用いて、ディレクトリ内の dcdd144598 2011-02-23 kinaba: // ファイルリストアップを行います。 dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: class FindFile : public Object dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ コンストラクタ //@} dcdd144598 2011-02-23 kinaba: FindFile(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ デストラクタ //@} dcdd144598 2011-02-23 kinaba: ~FindFile(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ 検索終了処理 //@} dcdd144598 2011-02-23 kinaba: void Close(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: public: //-- 外向きインターフェイス -------------------------- dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: bool Begin( const TCHAR* wild ); dcdd144598 2011-02-23 kinaba: bool Next( WIN32_FIND_DATA* pfd ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ static版。マッチする最初のファイルを取得 //@} dcdd144598 2011-02-23 kinaba: static bool FindFirst( const TCHAR* wild, WIN32_FIND_DATA* pfd ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: HANDLE han_; dcdd144598 2011-02-23 kinaba: bool first_; dcdd144598 2011-02-23 kinaba: WIN32_FIND_DATA fd_; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: NOCOPY(FindFile); dcdd144598 2011-02-23 kinaba: }; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline FindFile::FindFile() dcdd144598 2011-02-23 kinaba: : han_( INVALID_HANDLE_VALUE ) {} dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline FindFile::~FindFile() dcdd144598 2011-02-23 kinaba: { Close(); } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: } // namespace ki dcdd144598 2011-02-23 kinaba: #endif // _KILIB_FIND_H_