C++ で Windows フォームを作成しました。ボタンをクリックすると、フォルダー選択用のダイアログ ボックスが開きます。
ここでやりたいことは、そのディレクトリ内のファイルのリストを取得して、それらを 1 つずつ処理できるようにすることです。
私は多くの方法でそれをグーグルで検索し、外部ライブラリ (boost や diren.h など) を含む多くの方法を見つけました。私は外部リソースを使用したくありませんが、自由に使えるもの、デフォルトのものを使用します。
FindFirstFile と FindNextFile について読んだことがありますが、その組み合わせを機能させることができませんでした。
助けていただけますか?
どうもありがとう、イダン。
更新されたコードは次のとおりです。
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
FolderBrowserDialog^ folderBrowserDialog1 = gcnew FolderBrowserDialog;
if (folderBrowserDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
String ^ selected = folderBrowserDialog1->SelectedPath;
selected += "\\*";
char* stringPointer = (char*) Marshal::StringToHGlobalAnsi(selected).ToPointer();
hFind = FindFirstFile((LPCWSTR)stringPointer, &FindFileData);
while(hFind != INVALID_HANDLE_VALUE)
{
printf("Found file: %s\r\n", FindFileData.cFileName);
if(FindNextFile(hFind, &FindFileData) == FALSE)
break;
}
}