我已經在C++中創建了一個窗體窗體,在單擊按鈕時打開一個用於選擇文件夾的對話框。在目錄中列出文件
現在我想要做的是獲取該目錄中的文件列表,以便我可以逐個處理它們。
我用很多方式對它進行了搜索,發現了許多包含外部庫(如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;
}
}
你用FindFirstFile嘗試了什麼,你期望什麼,什麼不起作用? – harper 2012-07-16 10:29:05
我添加了我的代碼。 基本上我想將文件名取到char *中,以便稍後使用它們。 – Idanis 2012-07-16 11:42:18
好吧,我瞭解了你寫的內容的一部分,同時我發現了一種新的方法 - 請查看更新後的代碼。現在,我想(使用對話框)選擇一個目錄到「選定」變量。然後,我想迭代該目錄中的文件。我期待每個文件名都有一個char *,這樣我可以保存它們,然後再使用它們。再次感謝! – Idanis 2012-07-16 13:16:05