Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.05.2011, 19:40

Unterverzeichnisse finden

Hallo, ich brauch wiedermal Hilfe ^^

Ich möchte alle Ordner finden, die sich in einem Verzeichnis befinden, wenn die Ordnernamen nicht bekannt sind.
Das soll angeblich iwie über die FindFirstFile / FindNextFile Funktion gehen, jedoch schaffe ich es nicht.
Die Funktionen sind mir zwar bekannt, jedoch weiß ich nur, wie ich damit nach unbekannten FILES suche.
Ich schaffe es aber nicht, irgendiwe die Namen der Ordner zu finden, die sich im Verzeichnis befinden.

Hoffe auf Hilfe,
Ombalat

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

17.05.2011, 19:53

Diese Funktionen finden ebenfalls die Ordner. Dann kannst du auf das jeweils erhaltene Objekt die Funktion GetFileAttributes benutzen um herauszufinden, ob das Objekt ein Ordner ist.

3

17.05.2011, 19:58

In der Struktur WIN32_FIND_DATA steht doch alles drin!?
Unter anderem, ob es sich um ein Verzeichnis handelt (FILE_ATTRIBUTE_DIRECTORY).
fka tm

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

17.05.2011, 20:14

lol. Ganz übersehen, dass das dort auch noch mitgegeben wird. ^^
Kommt davon, wenn man nur kurz die Funktionen durchschaut. Hatte sogar im Kopf, dass es eine Funktion IsDirectory oder so gibt (war aber in boost.filesystem).

5

17.05.2011, 21:22

In der Struktur WIN32_FIND_DATA steht doch alles drin!?
Unter anderem, ob es sich um ein Verzeichnis handelt (FILE_ATTRIBUTE_DIRECTORY).

das ist mir bewusst, aber wie bekomme ich dann den NAMEN des ordners?
über cFileName bekomme ich nämlich nur einen "."

6

17.05.2011, 21:37

Das galt drakon. ;)

Das ist für dich:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
typedef struct _WIN32_FIND_DATA { 
DWORD dwFileAttributes; 
FILETIME ftCreationTime; 
FILETIME ftLastAccessTime; 
FILETIME ftLastWriteTime; 
DWORD nFileSizeHigh; 
DWORD nFileSizeLow; 
DWORD dwOID; 
TCHAR cFileName[MAX_PATH] // Hier ist der Dateiname; 
} WIN32_FIND_DATA;


Hab leider kein eigenes Beispiel parat.
Hier ist eines aus dem C++ - Forum.
fka tm

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

17.05.2011, 22:32

Das galt drakon.

Was galt? ?(

Gibt halt viele Wege und wenn man nur kurz schaut findet man oftmals nicht gerade den kürzesten. :)

8

17.05.2011, 22:36

Du hast vorgeschlagen, neben FindFirst/FindNext auch noch GetFileAttributes zu verwenden.
Daraufhin mein Hinweis auf die WIN32_FIND_DATA Struktur.
Dachte, du hättest es auch so verstanden. Bei der Antwort.
fka tm

9

17.05.2011, 22:45

Vielen Dank .. hatte den link sogar ^^
Hab das mit den . und .. übersehen :S

Liebe Grüße

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

17.05.2011, 22:46

Achso. Ich habe das "galt" falsch gedeutet. Das galt da ja Ombalat und nicht mir. Ich dachte, dass es mir gilt und meinte, dass du das im Sinne von "der Punkt gilt" meinst. Konfusion vollständig? ^^

Aber ich habe die Frage auch so verstanden, dass er nicht weiss, wie man zu den Ordnern kommt und nicht nur nicht weiss wie man zu den Namen kommt.

@ombalat:
Das ist der erste "Ordner". Da musst du denn mit dem nächsten Ordner weiter fahren.

Werbeanzeige