Visual C++(6.0)MFC環境です。
FindNextFile関数で、C:¥testフォルダにある「*.txt」ファイルを
一覧で取得したいのですが、このときワイルド検索したファイル結果を
ファイル名称でソートしたVector<string>を取得したい。
実現方法がわかりません。
教えてください。
HANDLE hFind;
WIN32_FIND_DATA FindData;
// 最初の検索
if ( (hFind = FindFirstFile( "C:\test\*.txt",&FindData )) == INVALID_HANDLE_VALUE ) {
// エラー
}
while ( TRUE ) {
_tprintf("[%s]\n",FindData.cFileName );
// 次の検索
if ( FindNextFile( hFind,&FindData ) == FALSE ) {
break;
}
}
// 後始末
FindClose( hFind );
FindNextFileはソートした結果を取得できません。
全てのファイルをリストに追加した後、ソートするようにしてくださ。
>Vector<string>
Vector が std::vector であるならば、std::sortやstd::stable_sortを使えば
ソートが可能です。
そこまでできてるんだったら push_back した後に sort するだけぢゃん
# Vector が std::vector のことならば、の話だけど
FindFirstFile のファイル名指定が正しいか?とか
MFC 使うんなら CFileFind のほうが簡単ぢゃねぇか?とか
まあツッコミどころはいくつもあるわけだけど
>>FindFirstFile のファイル名指定が正しいか?とか
→[\]が1桁になっていました。
すいません。記述ミスでした。
無事、vectorのソートを利用して期待どおりの結果になりました。
無事解決しましので更新します。
ツイート | ![]() |