8-bit Brain
2004-06-22, 00:39:14
Moin Leute,
mich quält da ein Problem in C++. Zuerst der Code:
// Dateiliste erstellen
WIN32_FIND_DATA FData;
HANDLE hSearch = FindFirstFile("G:\\*.*",&FData);
BOOL MoreFiles = FALSE;
if (hSearch == INVALID_HANDLE_VALUE) return -1;
do
{
// Ist das ein Ordner ?
if (FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{}
// Wenn nicht
else
{
// Den Dateinamen ausgeben
cout << FData.cFileName << "\n";
dateien.push_back((char*)FData.cFileName);
cout << dateien[dateien.size()-1] << "\n\n";
}
MoreFiles = FindNextFile(hSearch,&FData);
} while (MoreFiles);
FindClose(hSearch);
cout << dateien[0] << "\n";
cout << dateien[10] << "\n";
cout << dateien[20] << "\n";
cout << dateien[30] << "\n";
Der ist zugegeben nicht wirklich optimal. Ich habe ihn von einer Website (http://www.cpp-programming.de/quellcodes/viewcode.php?id=043) übernommen und leicht angepasst. Jedenfalls sollte er eigentlich funktionieren.
Folgendes: In den letzten vier Zeilen lasse ich vier verschiedene Elemente ausgeben. Jedoch wird jedes Mal der gleiche Dateiname angezeigt!
Allerdings ist es in den Zeilen
// Den Dateinamen ausgeben
cout << FData.cFileName << "\n";
dateien.push_back((char*)FData.cFileName);
cout << dateien[dateien.size()-1] << "\n\n";
so, dass tatsächlich alle Dateien gefunden werden und dass die beiden Ausgaben (einmal des Suchergebnisses und danach des vector-Elements) übereinstimmen.
Ich hoffe, jemand kann mich hier mit einer helfenden Anregung versorgen.
Es grüßt:
Gerrit
mich quält da ein Problem in C++. Zuerst der Code:
// Dateiliste erstellen
WIN32_FIND_DATA FData;
HANDLE hSearch = FindFirstFile("G:\\*.*",&FData);
BOOL MoreFiles = FALSE;
if (hSearch == INVALID_HANDLE_VALUE) return -1;
do
{
// Ist das ein Ordner ?
if (FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{}
// Wenn nicht
else
{
// Den Dateinamen ausgeben
cout << FData.cFileName << "\n";
dateien.push_back((char*)FData.cFileName);
cout << dateien[dateien.size()-1] << "\n\n";
}
MoreFiles = FindNextFile(hSearch,&FData);
} while (MoreFiles);
FindClose(hSearch);
cout << dateien[0] << "\n";
cout << dateien[10] << "\n";
cout << dateien[20] << "\n";
cout << dateien[30] << "\n";
Der ist zugegeben nicht wirklich optimal. Ich habe ihn von einer Website (http://www.cpp-programming.de/quellcodes/viewcode.php?id=043) übernommen und leicht angepasst. Jedenfalls sollte er eigentlich funktionieren.
Folgendes: In den letzten vier Zeilen lasse ich vier verschiedene Elemente ausgeben. Jedoch wird jedes Mal der gleiche Dateiname angezeigt!
Allerdings ist es in den Zeilen
// Den Dateinamen ausgeben
cout << FData.cFileName << "\n";
dateien.push_back((char*)FData.cFileName);
cout << dateien[dateien.size()-1] << "\n\n";
so, dass tatsächlich alle Dateien gefunden werden und dass die beiden Ausgaben (einmal des Suchergebnisses und danach des vector-Elements) übereinstimmen.
Ich hoffe, jemand kann mich hier mit einer helfenden Anregung versorgen.
Es grüßt:
Gerrit