2008年10月22日水曜日

VC++.NETでCFileFindを利用したファイル検索

未だにWin32 APIをごりごり使っている古い人向けTips。
だって軽いし便利なんだよぅ…。

CFileFindを使用してファイル検索をする方法です。

ソース。
  1. CFileFind fileFind;  
  2. BOOL bFlg = TRUE;  
  3. if( fileFind.FindFile( "C:\\*.*" ) )  // C:\直下のすべての拡張子付きファイル  
  4. {  
  5.   do {  
  6.     bFlg = fileFind.FindNextFile();  
  7.   
  8.     // カレント、パレントフォルダは除外  
  9.     if( fileFind.GetFileName().Left(1).Compare(".") != 0 )  // .と..の事です  
  10.     {  
  11.       AfxMessageBox( fileFind.GetFilePath() );  // メッセージボックスで表示  
  12.     }  
  13.   } while( bFlg );  
  14. }  


カレントフォルダと親フォルダまで検索に引っかかるのが謎だけど。
まあ、除外すれば良いので。