Ich versuche FindFirstFile
zu überprüfen, um zu verwenden, wenn einige Dateien nach einem Muster existieren, aber es scheint, dass der Platzhalter *
nicht für ein Verzeichnis stehen kann.Warum Platzhalter für Verzeichnis in FindFirstFile nicht stehen kann?
int main()
{
WIN32_FIND_DATAW findFileData;
wchar_t path[] = LR"(.\*\*.txt)";
HANDLE hFind = FindFirstFileW(path, &findFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
printf("%S\n", findFileData.cFileName);
} while (FindNextFileW(hFind, &findFileData));
}
}
Mit diesem Baum wird nichts gedruckt:
.
|- foo
| |- some.txt
|
|- bar
| |- another.txt
Warum diese Einschränkung? Gibt es einen Workaround?
Da '* \ * \ *' ist nicht gültigen Verzeichnisnamen. Wenn Sie die Ordnerhierarchie für einige Dateien durchsuchen möchten, müssen Sie einen rekursiven Algorithmus implementieren. – Ari0nhh