''[[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~