Hallo!
ich versuche eine Funktion zu schreiben, die mir eine Liste aller Unterordner eines Verzeichnisses liefert. Da auch Unicode-Namen berücksichtigt werde sollen will ich mit FindFirstFileW arbeiten. Hierzu finden sich allerlei Beiträge in denen Suchprozeduren mit FindFirstFileW implementiert werden. Bei mir will das Ganze aber nicht so recht funktionieren, da FindFirstFileW einfach nichts findet:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function GetSubDirList(Path: String; Recurse: boolean = true) : TStrings; var hFind: THandle; FindFileData: WIN32_FIND_DATAW; i: integer; begin Result:=TStringList.Create;
hFind := FindFirstFileW(PWideChar(Path), FindFileData); if hFind = INVALID_HANDLE_VALUE then begin ShowMessage('Nichts gefunden...'); end else try repeat ... until FindNextFileW(hFind,FindFileData) = false; finally Windows.FindClose(hFind); end;
if recurse then begin ... end; end; |
Das Problem ist, dass egal was ich versucht habe immer "Nichts gefunden..." ausgegeben wird, hFind ist nach dem Aufruf von FindFirstFileW also ein ungültiges Handle...
Der Pfad mit dem ich die Prozedur zum testen aufrufe, "C:\Test\" existiert definitiv und enthält auch einige Dateien. Wie muss ich FindFirstFileW aufrufen, damit auch was gefunden wir?
Besten Dank
Ares