Ordner in Schleife erzeugen



  • Hi, ich möchte eine gewisse Anzahl von Ordnern erzeugen.
    Dies mach ich bislang immer mit mkdir in einer for-Schleife
    Das Problem ist aber, dass diese Ordner immer einen anderen Namen brauchen, da sie sonst nicht erstellt werden.

    Kann man irgendwie strings verketten (mit einer fortlaufenden Nummer) und den string dann als Ordnernamen übergeben?

    Bin offen für alle Ideen

    Danke für eure Antworten



  • Mach dich über stringstreams schlau. Du kannst einen Prefix in diesen hineinschreiben, dann die Ordnernummer und dann dir einen zusammengesetzten string zurückgeben lassen, welchen du weiterverwenden kannst.





  • Ok, danke für eure Hilfe habe ich gemacht, aber leider nummeriert mkdir komisch: Nämlich so: Ordnername0, Ordnername01, Ordnername012

    for (int i=0;i<anzahl_ordner;i++)
    {
     ordnername<<stext<<i;
    dir.mkdir(ordnername);
    
    }
    

  • Mod

    Du fügst stets zu deinem Stringstream hinzu, aber nimmst nichts weg. Die einfachste Lösung wäre, den Stringstream innerhalb der Schleife zu definieren. noch besser wäre, auf manni66 zu hören.



  • Ich hab jetzt mal versucht alle Ziffern nach dem Erstellen eines Ordners zu entfernen, aber es passiert gar nichts

    for (int i=0;i<anzahl_ordner;i++)
    {
        dir.mkdir(ordnername);
    
         for (int j = 0; j< ordnername.size();j++)
         {
             if (isdigit(ordnername[j]))
             {
                 ordnername.erase(j, 1);
    
             }
    
         }
    }
    

  • Mod

    Es ist immer undurchschaubarer, was du überhaupt für einen Code vorliegen hast. Außerdem könnte es helfen, Antworten auch bis zum Ende zu lesen.



  • so kannst du mehrere ordnernamen generieren. wie du mkdir() einbaust musst du mal selber rausfinden bzw lernen.

    du kannst lieber googeln und tutorials abarbeiten statt in foren auf antworten zu warten. 👎 👎

    #include <iostream>
    #include <string>
    #include <sstream>
    using namespace std;
    
    int anzordner = 20;
    string nmordner = "Ordnername";
    
    int main(){
    
    	for (int i = 1; i <=anzordner; i++){
    
    		stringstream b;
    		b << nmordner << "_" << i;
    		string a = b.str();
    
    		cout << a << endl;
    
    	}
    
    	system("pause");
    	return 0;
    }
    

Anmelden zum Antworten