Pfad nach Datein durchsuchen mit FindFirstFile

Giocci

Grünschnabel
Hallo Hallo.
Ich bin hier neu und wollte mal um eure Hilfe fragen.

Ich hab die Aufgabe in einem Praktikum in einer Firma ein Programm in C++ zu schreiben indem ich in einem Pfad alle Datein in allen unterordnern eines bestimmten Typs durchsuche, sie öffne und herausfinde welche von diesen Datein andere öffnen. Zum Beispiel welche .exe öffnet andere .exen
Zwar habe ich diesen Therad gefunden < http://www.tutorials.de/forum/c-c/220962-dateien-auf-der-festplatte-suchen.html >, allerdings hilft mir der, Anfänger wie ich bin, nicht ganz auf die Sprünge.

Ich selbst hab nur etwa ein Jahr Ausbildungserfahrung in Java, bin demnach auf dem Gebiet C++ absolut neu und hab bisher nur ein Buch "C++ in 21 Tagen" bekommen, was mir da allerdings auch nicht groß weiterhilft. Selbst sitzen tu ich an dem Projekt seit einigen Tagen. Ich fühl mich da grad ein wenig ins kalte Wasser geworfen.

Unten steht der Projektcode den mein Betreuer bisher mit mir geschrieben hat, wobei er mich mehr wie ein Lehrer durch das ganze geleitet hat.
Die included Datein Crossref.h und CrossListe.h sind Sachen die er mir vorgegeben hat.


/*---------------------- Includes ----------------------------------------*/

#include "CROSSREF.h"
#include "CROSSListe.h"


/*---------------------- Globale Variable --------------------------------*/

CROSSListe g_DateiListe;

/*---------------------- Function ----------------------------------------*/

long FindTreeCrossListe()
{
long nmodus=0;
long nrup =0;
AString strPath;
AString strFindPath;
char cPath[512];
char cFindPath[512];
char* pcExt;
CROSSListElement* pElement;



if (g_nProtswitch > 0 && g_pLOGFile == NULL)
{
fprintf(g_pLOGFile, " %s /n", "Start FindTreeCrossListe");
}

strFindPath = "d:\xyz1";
strcpy(cFindPath, "C:\\xyz\\xyz1");
nmodus = 11;

nrup = cf_FILFFDIRX(nmodus, cFindPath);

if (nrup == 0)
{
while(nrup == 0)
{
nrup = cf_FILFFDIRXNext(cPath);
printf("%s \n", cPath);

cf_STRUpperStr(cPath);
pcExt = cf_FILGetFileExt(cPath);
if(pcExt != NULL)
{
if(strcmp(pcExt, ".EXE") == 0)
{
pElement = new(CROSSListElement);
g_DateiListe.Add(pElement);
}
}

}
}
else
{

}

if (g_nProtswitch > 0 && g_pLOGFile == NULL)
{
fprintf(g_pLOGFile, " %s /n", "Ende FindTreeCrossListe");
}
return(0);
}


Jetzt soll ich das ganze mit den Methoden FindFirstFile und FindNextFile umschreiben. Nachdem ich mich selbst in den ganzen Kram einarbeiten musste und noch keinen echten Fortschritt gemacht habe, frag ich nun hier um Hilfe wie ich das ganze Konkret angehen soll. Er sagt ich müsste die Routinen umschreiben und mich daran machen das mit den Befehlen zu machen. Da ist mein Problem. Wo fang ich konkret an, und wie sieht sowas im Ergebnis fertig aus?
Mein Betreuer kann mir relativ wenig helfen, da ich sogut wie kein Vorwissen hab, ausser das ich vielleicht die Syntax etwas durch Java verstehe, und dieses Buch etwas in den letzten Tagen durchprügele.

Ich hoffe ihr könnt mir da ein wenig helfen.

MfG und danke im Vorraus - Gio
 
So ist ein möglicher Grundaufbau mit den Funktionen:
Code:
                     WIN32_FIND_DATA dta;
	HANDLE hFile = FindFirstFile(".\\Plugin\\*.dll", &dta);
	do
	{
		if(hFile == INVALID_HANDLE_VALUE)
			return;
	}
	while(FindNextFile(hFile, &dta));
 
Zurück