FrontPage

サブフォルダの検索

Windows上の指定フォルダ(ディレクトリ)以下にあるすべてのファイルについて検索を実施する。
検索するファイルの名前・種類を指定できるが、"*.*"ですべてのフォルダ・ファイルを列挙することができる。

制約

.NET関数・MFCを使用しないこと。

以下のソースファイルは、検索開始パスを引数とする副関数を仮想して記述している。

void ListFile( TCHAR* path )
{
    HANDLE hfind;
    WIN32_FIND_DATA w32fd;
    TCHAR subPath [80];
    
    hfind = FindFirstFile( path, &w32fd );
    if( hfind != INVALID_HANDLE_VALUE )
    {
        path[strlen(path) - 3] = '\0';
        do
        {
//          if( ( ( w32fd.cFileName != _T(".") ) && ( w32fd.cFileName != ".." ) ) ) //!なぜかうまく働かない
            if( strcmp( w32fd.cFileName, ".." ) > 0 )           // !なぜか1文字のディレクトリも検索できる 
            {
                if( (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                    == FILE_ATTRIBUTE_DIRECTORY )
                {
                    _stprintf( subPath, "%s\%s\\*.*", path, w32fd.cFileName ); // !_stprintf_sが使えない(ヘッダ×?) 
//                  MessageBox( NULL, subPath, "StyleMod", MB_OK ); // 確認用 
                    ListFile( subPath );
                }
                else
                {
                    MessageBox( NULL, w32fd.cFileName, "StyleMod", MB_OK );
                }
            }
        }
        while( FindNextFile( hfind, &w32fd ) );

        FindClose( hfind );
    }

    return;
}

参考ページ

http://www.sm.rim.or.jp/~shishido/subdir.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-08 (月) 02:08:07 (5185d)