我試圖在C++中創建一個應用程序來搜索磁盤上的所有.wav文件(包括所有子文件夾及其子文件夾等等,整個磁盤搜索,如防病毒搜索在Avast等上),並將它們存儲在一個字符串中,然後保存到文本文件中。我有麻煩找出如何實際做到這一點,我可以使用一些幫助。C++查找所有.wav文件
這是我迄今爲止所做的,它只搜索C盤的根文件夾,我不知道現在該做什麼。我知道我應該使用某種類型的循環,但我不知道如何實際做到這一點,沒有合乎邏輯的方式可以這麼做。
void finddata()
{
MessageBox(NULL, "finddata called", "Started", MB_OK | MB_ICONINFORMATION);
WIN32_FIND_DATA FindFileData; // A pointer to the WIN32_FIND_DATA structure that receives information about a found file or directory.
HANDLE hFind; // Used to check the return value
hFind = FindFirstFile("C://*.wav", &FindFileData);
if(hFind == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "INVALID_HANDLE_VALUE", "Failed", MB_OK | MB_ICONINFORMATION);
}
else
{
string file;
file = FindFileData.cFileName;
file.append("|");
MessageBox(NULL, file.c_str(), "YO", MB_OK | MB_ICONASTERISK); // string.c_str() to conv to LPCSTR
FindClose(hFind);
}
}
MessageBox在最後只是作爲一個測試,我將在稍後刪除它。我目前正在學習C++,這是一個初學者的項目,所以我可以得到它的一個竅門。
此外,字符串數據類型的大小是否有任何限制?謝謝。
您在使用Windows作爲OS? –
您可以使用std :: string :: max_size來查看std字符串的最大大小。 –
是的,Windows 7 64位 –