FindFirst, FindNext



  • hallihallo,
    ich möchte einfach nur alle Ordner in einem Unterordner ausgeben lassen.
    aber irgendwie funktioniert mein Code-Schnipsel nicht, und ich bin zu doof, den Fehler zu finden.

    hier mal der Text:

    int _tmain(int argc, _TCHAR* argv[])
    {
    	char* myfile = "C:\\bands.txt";
    	char* mypath = "E:\\Musik\\Meine Musik\\";
    	int rueck = 0;
    	struct ffblk info;
    	FILE* p = fopen(myfile,"w+");
    
    	if (p == NULL) {
    		printf("Datei konnte nicht geöffnet werden.");
    	}
    
    	findfirst(mypath, &info, FA_DIREC);
    
    	while(rueck==0)
    	{
    		printf("%s", &info.ff_name); // Ausgabe zunaechst nur in Konsole
    		rueck = findnext(&info);
    	}
    
    	fclose(p);
    	printf ("Bitte Enter druecken...");
    	getchar();
    	return 0;
    }
    

    Hab ich die Pfade falsch angegeben (sie existieren aber)?
    Oder liegts am FindFirst?

    In dem Ordner befinden sich viele Einträge, aber es wird kein Ordnername in info.ff_name gespeichert.


  • Administrator

    1. Was hat das mit Standard C++ zu tun? Ich sehe in erster Linie C und wohl noch was anderes.
    2. Das andere ist genau der zweite Punkt. Woher stammt findfirst, bzw. findnext, und die entsprechenden Strukturen? Welche Bibliothek ist das? Jedenfalls sicher nicht C++.
    3. Aus Punkt 1 und Punkt 2 schliesse ich, dass du im falschen Forum bist.

    Grüssli



  • ja gut, entschuldigung...
    aber deine antwort hilf tmir jetzt auch nicht weiter...
    Ich werds berücksichtigen mich vorher schlau zu machen, was ich wohin posten muss.
    Aber dein Post ist doch auch nur beitragscounter+1 und keine hilfe


  • Administrator

    Wenn du zum Beispiel mal die Fragen beantworten würdest, welche ich dir gestellt habe, könnte ich dir auch helfen oder auch andere. So lange wir nicht wissen, womit wir es hier zu tun haben, können wir dir auch keine Hilfestellung geben. Leuchtet doch ein, oder?

    Grüssli



  • Im übrigen sagst du nicht wirklich an, was nicht geht.

    aber irgendwie funktioniert mein Code-Schnipsel nicht

    Diese Aussage ist nichtssagend.. Woher wollen wir wissen, was du erwartest?! Und was dein Programm machen soll?

    Es scheint mir im übrigen so, dass du den Code einfach mal so Copy/Paste gemacht hast und ihn selber nicht wirklich verstehst..



  • gut, ähm... dann sorry für meine shclechte ausdrucksweise:

    Bei der Ausgabe in er Console erscheint nichts außer dem bitte Enter Druecken.
    Normalerweise sollten da zig Künstler untereinanderstehen.

    Zu meiner verteidigung ist er nicht gecopy und pastet...
    Woran man das nur erkennen will

    ähm.. ich hab das findfirst aus DIR.h
    hätt vielleicht besser vcl nehmen sollen, he ?


  • Administrator

    Und woher stammt dieses dir.h? Ich wiederhole mich, welche Bibliothek? Ist das nicht ein Unix-Header? Das wäre ja fatal falsch unter Windows.

    Naja, da ich immer noch nicht weiss, welche Bibliothek es ist, kann ich nur ein paar Vorschläge für Alternativen machen. Falls du in C++ eine platformunabhängige Bibliothek suchst, dann wäre wohl Boost.Filesystem das richtige für dich.
    Ansonsten haben die meisten Frameworks, wie wxWidgets, VCL oder MFC entsprechende Möglichkeiten.

    Falls du auf C bleiben möchtest, dann wäre unter Windows die WinAPI das richtige:
    http://msdn.microsoft.com/en-us/library/aa364232(VS.85).aspx
    Stichwörter: FindFirstFile, FindNextFile, FindClose

    Grüssli



  • Danke, da werd ich bestimmt was finden.
    Hätt mich vorher mal schlau machen sollen aus welcher Biblio dir.h ist.^^



  • Quellcode schrieb:

    Hätt mich vorher mal schlau machen sollen aus welcher Biblio dir.h ist.^^

    Und nicht nur das: Mach dich auch mal über die Sprache schlau.
    (C, C++, C++/CLI, C# sind alles eigene Sprachen und jede hat hier auch ein eigenes Unterforum)


Log in to reply