struktur von Laufwerk c mit unterordner



  • huhu
    Ich hätte da ne kleine Frage
    ich hab nen kleines Programm geschrieben das zeigt mir die laufwerkstruktur von c:\ an
    wie müsste ich das Programm umschreiben wenn ich die ganze Laufwerkstruktur sehen will?
    also auch unterordner und so.
    irgendwie raff ichs nich Smile
    kann mir da wer helfen?

    hier der code

    WIN32_FIND_DATA FileData; 
    
    	HANDLE hfind = FindFirstFile("c:\\*.*",&FileData); 
    
    	int FindMoreFiles; 
    	int dir = 0;
    	int file  = 0;
    
    	do
    	{ 
    		if (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    		{       
    			cout<< "<Ordner> " << FileData.cFileName << endl;
    			dir++; 
    		}
    
    		else 
    		{
    			cout << "<Datei>  " << FileData.cFileName << endl; 
    			file++; 
    		}         
    
    		FindMoreFiles = FindNextFile(hfind,&FileData); 
    
    	} while (FindMoreFiles); 
    
    	FindClose(hfind);
    
    	cout << endl << "Insgesamt" << endl;
    	cout << "Ordner:  "<< dir << endl;
    	cout << "Dateien: "<< file << endl << endl;
    

    wäre super wenn da wer helfen könnte
    thx schonma im voraus



  • Dieser Thread wurde von Moderator/in HumeSikkins 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.



  • eine funktion die einen pfad als input nimmt und dir ne liste der dateien/ordner als output liefert

    lässt sich mit FindFirstFile/FindNextFile umsetzen

    also zeigst du erst mal c\ an und wenn der user auf nen unterordner klickt schickst du den pfad an die besagte funktion und bekommst ne liste des inhalts eine ebene tiefer

    ich würd davon abraten im voraus rekursiv ne liste aller ordner und dateien zu erstellen
    bei grossen platten dauert das ewig



  • Ich wollts rekursive machen, bzw mehr oder weniger sollte *g*.

    und mit klicken is nix, ist alles konsole bisher.

    Ich will also das Programm starten und denn soll er mir alles zeigen was auf c:\ ist.
    klar dauerts ne weile aber darum gehts nich 🙂



  • ok

    hier n bissi pseudocode:

    ListeHolen ( Pfad )
    {
      Liste OrdnerListe, DateiListe;
      //listen füllen
      ...
      for ( i = 0; i < OrdnerListe.size(); i++ )
      {
        ListeHolen  ( Pfad + OrdnerListe[i] );
      }
    }
    


  • Ich dank Dir.

    Kann zwar nich soviel mit anfangen da ich kein c++ Profi bin

    aber hab ma das draus gebastelt

    listFiles (char *pDirectory);
    
    	char Buffer[_MAX_PATH];
    	strcpy (Buffer, pDirectory);
    	strcat (Buffer, "*.*");
    
    	while (hfind)
    	{
    		if (pDirectory)
    			listFiles("c:\",pDirectory);
    	}
    

    habs halt nut mit ner while schleife versucht



  • Vielleicht hilft dir DlgDirList weiter?!



  • hm ne ich denke nich
    ich versteh schon irgendwie, wie ich es machen soll nur ich hab keinen plan wie ich es umsetzen soll



  • und ich weiss nich wie ichs nem anfänger erklären soll
    ohne ihn zu überfordern 😉



  • hihi
    jo glaub ich Dir 😃

    versuchs doch mal 😉
    am besten mit code 😛

    Du siehst ja meine funktion da.
    is da soviel murks bei?



  • Hallo,

    was ist hfind? 😕
    (in

    while (hfind)
    {
    
    //...
    
    }
    

    Danke im Voraus für erklärende Antworten! Freundliche Grüße



  • sowas wie ne variable
    oda eigentlich is es eine 😃
    glaub ich *g*


Anmelden zum Antworten