Auslesen eines Verzeichnisses
-
Mit folgender Funktion lese ich ein Verzeichnis aus:
int getFiles() { WIN32_FIND_DATA dir; HANDLE fhandle; char directory[] = ".\\*.*"; char client[250]; if ((fhandle = FindFirstFile(directory, &dir)) != INVALID_HANDLE_VALUE) { do { if (dir.cFileName[1] != "." && dir.cFileName[2] != ".") SendMessage(clientsCol, LB_ADDSTRING, 0, (LPARAM)dir.cFileName); } while (FindNextFile(fhandle, &dir)); } FindClose(fhandle); }
Ich möchte nun aber die ersten beiden "Datein" nicht ausgeben. Sprich den Punkt der das aktuelle Verzeichnis signalisiert und die 2 Punkte, welche das vorige Verzeichnis signalisieren. cFileName ist doch vom Typ Char, wieso klappt dann folgende if-Bedingung nicht?:
if (dir.cFileName[1] != "." && dir.cFileName[2] != ".")
Grüße
-
T!P-TOP schrieb:
wieso klappt dann folgende if-Bedingung nicht?
klar klappt sie, falls das 2. und das 3. Zeichen ein '.' ist, wird es nicht ausgegeben.
-
Habs mal in...
if (dir.cFileName[0] != "." && dir.cFileName[1] != ".")
...umgeändert.
Und Nein, es klappt nicht. Es kommt zu folgenden Listelementen:
. .. test.txt foo.txt bar.txt
-
Weil du " statt ' benutzt.
-
Ja, tatsächlich, daran lags... Danke dir