Ordner durchsuchen C++ 

Status
Für weitere Antworten geschlossen.

electron

Registered +
Registriert
Juli 2008
Beiträge
58
Hi,

ich hab he Frage:
Wie kann in WinAPI mir den Inhalt eines Ordners zum Beispiel "C:\Prgramme" oder gleich "C:\" zurückgeben(oder ähnliches) lassen?

MfG
electron
 
HANDLE fHandle;
WIN32_FIND_DATA wfd;

fHandle=FindFirstFile("c:\\*",&wfd);

// Ergebnis Nummer 2 ist auch uninteressant (ist ".."):
FindNextFile(fHandle,&wfd);

while (FindNextFile(fHandle,&wfd))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Datei ist keine, sondern ein Verzeichnis...
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen ;-)
}
else
{
MessageBox(0,wfd.cFileName,"Folgende Datei gefunden:",0);
}
}
FindClose(fHandle);
 
Ich bekommen einen Fehler und zwar das "LPCWSTR" nicht in "const char *" konvertieren darf. Erster Parameter von FindFirstFile(...,...).
Wie kann ich das ihm schmackhaft mach das er es nimmt.
 
Dein projekt benutzt vermutlich das unicode format für die Strings, so sollte es klappen:
PHP:
FindFirstFile(L"c:\\*",&wfd);
 
Ah, ja jetzt klappt alles super, danke euch beiden!

Aber was macht das 'L' vor dem String? Ist es sowas wie das '0x' vor einer Hexadezimalzahl und gibt somit die leseweise für den Kompiler an, oder wie?
 
Aber was macht das 'L' vor dem String? Ist es sowas wie das '0x' vor einer Hexadezimalzahl und gibt somit die leseweise für den Kompiler an, oder wie?
Ja im prinzip schon. Das L definiert das es sich um 16 Bit zeichen handelt. Es werden also "wchar *" (wide char arrays" verwendet. Wenn du die kompilereinstellungen von unicode auf multi-byte ändern würdest müsstest du (glaube ich) keine wide chars verwenden für den Funktionsaufruf
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten