VC++ MFCでディレクトリ内のファイル一覧を取得する

#include "atlpath.h"
BOOL GetFileList(CString path,CStringArray* outArray)
{
	// ファイル検索を開始します。
	CFileFind fileFind;
	BOOL bResult = fileFind.FindFile(path);

	// ファイル検索ができない場合、終了します。
	if (!bResult) return FALSE;

	// ファイルが検索できる間繰り返します。
	do
	{
		// ファイルを検索します。
		// 次のファイル・ディレクトリがない場合、FALSEが返却されます。
		bResult = fileFind.FindNextFile();

		// "."または".."の場合、次を検索します。
		if (fileFind.IsDots()) continue;

		// 検索した結果がディレクトリの場合
		CString msg;
		CString filePath = fileFind.GetFilePath();
		if (fileFind.IsDirectory() && bsaiki )
		{
			// サブディレクトリを検索する場合、再帰呼出しします。
			CPath subDir = filePath;
			// ディレクトリ内のすべてのファイル・ディレクトリを対象とするため
			// ワイルドカード"*"を指定します。
			subDir.Append(_T("*"));
			GetFileList(subDir, outArray);
		}

		// ファイルの場合
		else
		{
			outArray->Add(filePath);
		}
	} while (bResult);

	return TRUE;
}