Problem mit Ordner durchsuchen bei Windows XP
-
Hallo,
habe folgenden Code in meinen Programm:
WIN32_FIND_DATA FData; HANDLE hSearch = FindFirstFile(AnsiString(Form1->Edit9->Text+ "\\*.*") .c_str(),&FData); BOOL MoreFiles = FALSE; do { // Ist das ein Ordner ? if (FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) { // Den Ordnernamen ausgeben ListBox12->Items->Add(FData.cFileName); MoreFiles = FindNextFile(hSearch,&FData); }bei Win 7 werden Problemlos die Unterordner hinzugefügt. Bei einem anderen Rechner mit Win XP werden keine Unterdateien/Verzeichnisse erkannt. Was mach ich falsch?
gruß,
Bernd
-
Bernd22 schrieb:
Was mach ich falsch?
Du stellst die Frage im falschen Forum

Es gibt hier ein extra Forum für Windows-Systemprogrammierung. Da sind solche Spezialfragen richtig aufgehoben.
-
if(FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)Das funktioniert nicht mehr, wenn zusätzlich noch ein anderes Attribut gesetzt ist.
Probiere malif(FData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Mit "." statt nur "*" wirst du vermutlich auch nicht allzuviele Ordner erwischen

-
Hi
Wie geeky schon gesagt hat :
FindFirstFile(AnsiString(Form1->Edit9->Text+ "\\*.*");Das müsste so aussehen :
FindFirstFile(AnsiString(Form1->Edit9->Text+ "\\*");Ist aber in der MSDN beschrieben ! :
http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx
-
danke für eure Antworten, werde es jetzt mit
if(FData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)und
FindFirstFile(AnsiString(Form1->Edit9->Text+ "\\*");ausprobieren...
Allerdings zeigt er mir bei Windows 7 die Unterordner an, obwohl ich . genommen habe
-
OK jetzt funktionierts ! Danke! versteh aber ehrlich gesagt nicht genau was es mit == und & auf sich hat in diesem Fall.