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

** 制約 [#d00fda17]
.NET関数・MFCを使用しないこと。~
~
&color(#FF0000,){以下のソースファイルは、検索開始パスを引数とする副関数を仮想して記述している。};
 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;
 }
*** 参考ページ [#a21f7aa3]
http://www.sm.rim.or.jp/~shishido/subdir.html~

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS