ファイルを検索する

ディレクトリを指定して、そこにあるファイル名をゲットしてストリングリストに入れて返す。
 

// ファイルを検索して、ストリングリストに入れて返す
// sl ファイル名を入れるストリングリストのポインタ
// dir ファイル名を取得するディレクトリ名とファイル名のフィルタ
//typr==1 ディレクトリを探してストリングリストに入れる
//type==0 ファイルを探してストリングリストに入れる
// 戻り値 見つかったファイルの数
int CFindDlg::GetFile(CStringList sl, CString dir, int type)
{
static CStringList csl;
int FileCount = 0;
CFileFind ff;
BOOL ffval=ff.FindFile(dir);
while(ffval == TRUE){
 ffval = ff.FindNextFile();
 if(ff.IsDots()==TRUE){
  // カレントディレクトリならびに親ディレクトリ
  CString s = ff.GetFileName();//デバッグ用コード
 } else if(ff.IsDirectory()==TRUE) {
  if(type==1) // ディレクトリ
   csl.AddTail(ff.GetFileName());
  } else {
   if(type==0) // ファイル
    FileCount ++;
   csl.AddTail(ff.GetFileName());
  }
 }
 ff.Close();
 return FileCount;
}
 
//呼び方と取り出し方
 
CStringList p;
GetFile(&p, "c:\\catalog\\*.p", 0);
CString px;
POSITION po= p.GetHeadPosition();
for(int i=0;i< p.GetCount(); i++){
px = p.GetNext(po);
}