JRKleemann
Grünschnabel
Hallo erstmal,
ich hab da ein Problem. Ich versuche grad mit FindFirstFile und FindNextFile die Dateien in Ordnern aufzulisten. Das Problem das ich dabei hab ist, dass das Programm immer nur eine Datei (mit FindFirstFile) findet, aber FindNextFile sagt direkt, es gäbe keine weiteren Dateien mehr (Fehlercode 18 mit GetLastError()), obwohl ich es mit Ordnern probiert habe, in denen reichlich Dateien vorhanden sind.
Der Code ist eine leicht gekürzte Fassung aus MSDN
http://msdn2.microsoft.com/en-us/library/aa365200(VS.85).aspx
Suche jetzt schon eine ganze Weile mit Google, aber hab nichts zu diesem Problem gefunden.
Ich benutze MinGW, Eclipse und Windows Vista, falls das von belang ist.
Hier mal der Code, den ich benutze:
Gruß
Jan
ich hab da ein Problem. Ich versuche grad mit FindFirstFile und FindNextFile die Dateien in Ordnern aufzulisten. Das Problem das ich dabei hab ist, dass das Programm immer nur eine Datei (mit FindFirstFile) findet, aber FindNextFile sagt direkt, es gäbe keine weiteren Dateien mehr (Fehlercode 18 mit GetLastError()), obwohl ich es mit Ordnern probiert habe, in denen reichlich Dateien vorhanden sind.
Der Code ist eine leicht gekürzte Fassung aus MSDN
http://msdn2.microsoft.com/en-us/library/aa365200(VS.85).aspx
Suche jetzt schon eine ganze Weile mit Google, aber hab nichts zu diesem Problem gefunden.
Ich benutze MinGW, Eclipse und Windows Vista, falls das von belang ist.
Hier mal der Code, den ich benutze:
Code:
#define _WIN32_WINNT 0x0600
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
using namespace std;
int main(int argc, TCHAR **argv)
{
WIN32_FIND_DATA ffd;
size_t length_of_arg;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError=0;
// Find the first file in the directory.
hFind = FindFirstFile(argv[1], &ffd);
if (INVALID_HANDLE_VALUE == hFind)
{
dwError = GetLastError();
_tprintf (TEXT("FindFirstFile failed (%u)\n"), dwError);
return dwError;
}
else
{
_tprintf (TEXT("First file: %s\n"), ffd.cFileName);
// List all the other files in the directory.
while (FindNextFile(hFind, &ffd) != 0)
{
_tprintf (TEXT(" Next file: %s\n"), ffd.cFileName);
}
dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
_tprintf (TEXT("FindNextFile error (%u)\n"), dwError);
goto Cleanup;
}
}
Cleanup:
FindClose(hFind);
return 0;
}
Gruß
Jan