Befehl um einen Ordner zu erstellen?



  • Moin,

    wollte mal wissen wie es unter windows möglich ist ein programm zu schreiben das ein ordner nach dem anderen erstellt (sinnlos aber trotzdem interessant)

    habe mir das so gedacht

    #include <iostream>
    using namespace std;
    
    int main()
    {
       int i=1;
       while(i<=100)
       {
          cout << "md bla " << i << endl;
    
          i=i+1;
       }
    }
    

    quasi das er einen ordner bla + zufalls zahl erstellt bis er 100 druch hat! nur geht leider nicht 😞



  • Mit Standard-C++ Mitteln geht das afaik nicht, da mußt du schon auf systemabhängige Funktionen (z.b. CreateDirectory()) oder boost::filesystem zurückgreifen.



  • Es gibt die Funktion mkdir(const char*, mode_t) in <sys/stat.h>. Zumindest unter POSIX. Ich weiß allerdings nicht, ob das mit diesem nicht-Standard-Betriebssystem auch so geht.

    Tommi



  • Wenn du mehrere Ordner erstellen willst, dann könntest du es so machen

    #include <iostream>
    #include <windows.h>
    #include <cstring>
    #include <sstream>
    using namespace std;
    
    int main()
    {
    	string Pfad = "C:\\Test\\Ordner";
    	string OrdnerName;
    	ostringstream OrdnerNummer;
    
    	for(int i=1; i<=100; i++)
    	{	
    		OrdnerNummer << i;
    		OrdnerName = Pfad + OrdnerNummer.str();
    		CreateDirectory(OrdnerName.c_str(), NULL);
    		OrdnerNummer.str("");
    	}
    }
    

    Und wenn die Ordner Nummer mit zufälligen Zahlen haben soll, dann lässt du dir mit rand() zufällige Zahlen erstellen, und lässt diese anstatt "i" anhängen.



  • system("mkdir test");
    

    geht auch, ist aber bestimmt keine saubere Art und weise und funktioniert auch nur in DOS-Eingabeaufforderung 😉



  • nki schrieb:

    system("mkdir test");
    

    geht auch, ist aber bestimmt keine saubere Art und weise und funktioniert auch nur in DOS-Eingabeaufforderung 😉

    Das fällt dir ja sehr früh ein 😉



  • wieso.

    Ich hab halt mal nen bisschen im Forum gestöbert 🙂
    Kann doch trotzdem noch auf nen Thread antworten, solang er net geschlossen ist, obwohl er schon bisschen älter ist :p

    ich sag's ja nur der vollständigkeitshalber, hehe



  • nki schrieb:

    ich sag's ja nur der vollständigkeitshalber, hehe

    Ok, der "vollständigkeitshalber" hättest du dann noch ein bisschen weiter stöbern können, dann hättest du nämlich das gefunden.
    system() 😃 :p



  • Boost bietet betriebssystemunabhängige Funktionen zum Arbeiten mit dem Dateisystem an:

    using boost::filesystem;
    
    create_directory("NewFolder");
    

Anmelden zum Antworten