Willkommen auf Planet-Liebe

diskutiere über Liebe, Sex und Leidenschaft und werde Teil einer spannenden Community! :)

jetzt registrieren

c++ newdir / mkdir

Dieses Thema im Forum "Musik, Filme, Computer und andere Medien" wurde erstellt von dr.kasHa, 6 Februar 2005.

  1. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit
    277
    101
    0
    Single
    hallihallo

    ich hab eine frage:
    ich will ein programm erstellen, welches einen ordner erstellt, mit unterordnern und der wiederrum unterordner usw.-ohne jeglichen inhalt
    ich hab auch schon mit einem kumpel angefangen, sieht wie folgt aus :

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char newdir[500];

    for ( int i=1; i<=5000; i++)

    {

    sprintf(newdir, "mkdir %i", i);
    system(newdir);

    printf("pwnd!!!");

    }//nu is schluss

    }//MUA

    bis hierher
    es werden bei diesem programm 5000 ordner erstellt, aber keine unterordner!

    hoffe bekomm hilfe ^^
    mfg
     
    #1
    dr.kasHa, 6 Februar 2005
  2. lillakuh
    lillakuh (32)
    Verbringt hier viel Zeit
    1.551
    121
    0
    Single
    #include <stdio.h>
    #include <stdlib.h>

    #define MAXo 5000 //anzahl ordner
    #define MAXu 3 //anzahl unterordner


    int main(void)
    {
    char newdir[500];
    int i, j:

    for (i=0; i<MAXo; i++)
    {
    sprintf(newdir, "mkdir %i", i); //soweit der platzhalter "i" korrekt is.....
    system(newdir);
    for(j=1; j<MAXu; i++)
    {
    sprintf(newdir, "mkdir %i", j);
    system(newdir);
    }
    printf("pwnd!!!"); //was des soll, frag ich mich ja.....

    }
    return0;
    }

    vorrausgesetzt, die ordnererstellbefehle sind richtig, sollte des 500 ordenr mit je drei unterordnern erstelln.....
    , oder was meinst?
     
    #2
    lillakuh, 6 Februar 2005
  3. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    yo genau das mein ich...allerdings müsste da noch irgendwo ein fehler drin sein, wenn sich die konsole öffnet bekomm ich : ein unterordner mit dem namen " 1 " existiert bereits!
    die meldung durchläuft die ganze schleife!
    ich hab die fehler aus deinem code mal rausgenommen!
    sieht jetzt wie folgt aus :

    #include <stdio.h>
    #include <stdlib.h>

    #define MAXo 5000 //anzahl ordner
    #define MAXu 1000 //anzahl unterordner


    int main(void)
    {
    char newdir[500];
    int i, j;

    for (i=0; i<MAXo; i++)
    {
    sprintf(newdir, "mkdir %i", i); //soweit der platzhalter "i" korrekt is.....
    system(newdir);
    for(j=1; j<MAXu; i++)
    {
    sprintf(newdir, "mkdir %i", j);
    system(newdir);
    }
    printf("pwnd!!!"); //was des soll, frag ich mich ja.....

    }
    return 0;
    }

    so...allerdings müsste er jetzt nur noch die ganzen ordner erstellen, abner wie?
    //edit : ach und noch was, in meinem verzeichnis wurde NUR ein ordner mit namen " 0 " erstellt & einen mit namen " 1 " mehr nicht, die beuiden beinhalten keine <- unterordner
     
    #3
    dr.kasHa, 6 Februar 2005
  4. lillakuh
    lillakuh (32)
    Verbringt hier viel Zeit
    1.551
    121
    0
    Single
    los Kirby!!!
    sag was!!!!
     
    #4
    lillakuh, 6 Februar 2005
  5. Mr. Poldi
    Verbringt hier viel Zeit
    3.068
    121
    0
    vergeben und glücklich
    Das was ihr da macht ist sehr dubios *verwirrt bin*

    Also erstmal zur Aufgabenstellung:

    Code:
    C:\testdir\1
    C:\testdir\2
    C:\testdir\3
    C:\testdir\1\1
    C:\testdir\1\2
    C:\testdir\1\3
    C:\testdir\2\1
    C:\testdir\2\2
    C:\testdir\2\3
    C:\testdir\2\1
    C:\testdir\2\2
    C:\testdir\2\3
    
    Soll die erzeugte Struktur so aussehen (also in der Root-Ebene bis 5000 und darunter jeweils bis 1000)?
     
    #5
    Mr. Poldi, 6 Februar 2005
  6. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    hmm soweit ist das schon richtig...!
    also nehmen wir an es werden 5000 hauptordner mit beschriftung von 1-5000 in einem verzeichnis erstellt,
    in jedem ordner ( 1-5000 ) - 1000 unterordner mit beschriftung 1-1000!
    jedoch soll es weitergehen und in den 1000 unterordnern jeweils wieder 1000 unterordner erstellt werden!

    ist evtl nen bisschen verwirrend aber ich weiß, dass es machbar ist!
     
    #6
    dr.kasHa, 7 Februar 2005
  7. Mr. Poldi
    Verbringt hier viel Zeit
    3.068
    121
    0
    vergeben und glücklich
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAXo 5000 //anzahl ordner
    #define MAXu 1000 //anzahl unterordner
    
    
    
    int main(void)
    {
    char newdir[500];
    char changedir[500];
    
    int i, j;
    
    for (i=0; i<MAXo; i++)
    {
      sprintf(newdir, "mkdir %i", i);
      system(newdir);
      sprintf(changedir, "cd %i", i);
      system(changedir);
      for(j=1; j<MAXu; j++)
      {
         sprintf(newdir, "mkdir %i", j);
        system(newdir);
      }
      system("cd ..");
    }
    printf("pwnd!!!"); //was des soll, frag ich mich ja.....
    
    }
    return 0;
    }
    
    Aber warum ihr das über nen system()-calls macht anstatt über die C-Library (stat.h) ist mir nicht so ganz klar ...
     
    #7
    Mr. Poldi, 7 Februar 2005
  8. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    hi
    das sieht schon mal gut aus...
    beim compile hatte ich 6 fehler
    wenn ich das richtig gesehen habe war 1 klammer zu viel zu oder?
    habe jetzt noch 2 fehler
    1. changedir nicht deklariert &
    2.
    in der zeile zu viel zeichen innerhalb einer konstanten!!

    hast du nen funktionierendes beispiel?

    und um auf die frage einzugehen!
    ich habe seit 1/2 jahr in der schule c++ und wir sind erst ( ;( ) bei arreys
    habe hier auch 2 bücher liegen die ich nach und nach durchwelze aber im moment hab ich noch nicht so den riesen plan xD
    also danke schon mal für deine hilfe
     
    #8
    dr.kasHa, 7 Februar 2005
  9. Lez
    Lez (31)
    Verbringt hier viel Zeit
    420
    103
    3
    Single
    ich hab auch erst n halbes jahr c++ und ich könnt heuln wenn ich seh wieviel ihr schon draufhabt...

    kann das sein das wir langsamer vorankommen weil wir immer aufgeteilt einmal console und einmal grafisch machen???
     
    #9
    Lez, 7 Februar 2005
  10. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    yo, so wirds sein
    SDL haben wir noch nicht
     
    #10
    dr.kasHa, 7 Februar 2005
  11. matthes
    matthes (34)
    Meistens hier zu finden
    1.122
    133
    44
    vergeben und glücklich
    Schau mal auf einem aktuellen Linux- oder Unix-System (alternativ im Internet nach "man page ..." suchen) die Man Pages von "mkdir(2)" und "chdir(2)" an:

    Code:
    man 2 mkdir
    man 2 chdir
    Um Unterverzeichnisse zu erstellen, musst du nach dem mkdir natürlich ein chdir machen in das neue Verzeichnis. Ansonsten ist mkdir/chdir die funktionierende und einfache Alternative zum system()-Aufruf.

    Grüße,
    matthes
     
    #11
    matthes, 7 Februar 2005
  12. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    hast du keine lösung? ^^
    ich selbst bin noch nicht so weit!!
    ansonsten - kirbyyyyyyyy wo bleibst du??
     
    #12
    dr.kasHa, 8 Februar 2005
  13. Psyllo
    Gast
    0
    Wenn ich das jetzt richtig zusammengeschrieben habe dann muesste es am ende so aussehen.

    Ich habe nur Linux deswegen kann ich es auch nur darunter testen, ich habe kein Windows, deswegen garantiere ich nicht dafuer das es unter Windows lauffaehig ist. (Du musst die zahlen selbst aendern in die in die du sie aendern moechtest)
     
    #13
    Psyllo, 8 Februar 2005
  14. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    geht nicht

    #include <stdio.h>
    #include <process.h> <----- die hat noch für den system-call gefehlt


    #define MAXO 5 // edit : allerdings hier mit höheren zahlen!!!
    #define MAXU 3

    int main() {
    char newdir[80];
    char newudir[80];
    char cd[80];
    int i,j;

    for(i=0;i<MAXO;++i){
    sprintf(newdir,"mkdir %i",i);
    sprintf(cd,"cd %i",i);
    system(newdir);
    system(cd);
    for(j=0;j<MAXU;++j){
    sprintf(newudir,"mkdir %i",j);
    system(newudir);
    }
    printf("Pwned!\n");
    }
    return 0;
    }

    das was bei rauskam:
    in meinem verzeichnis, wo ich die exe ausgeführt habe, wurdeen ordner erstellt ! aber : keine unterordner!
    sobald in meinem cmd-fenster " bla bla ein ordner mit namen " 0 " besteht bereits "
    wenn ich die meldung bekommen habe, geht es nicht mehr weiter ABER
    es wurden zu dem zeitpunkt schon maaaaasssig ordner erstellt, auch wenn in dem cmd fenster nix weiter steht, solang es offen ist macht der haufenweise ordner!
    wenn dazu jetzt noch unterordner kommen ist es perfekt
     
    #14
    dr.kasHa, 8 Februar 2005
  15. User 28016
    Verbringt hier viel Zeit
    106
    101
    0
    nicht angegeben
    So gehts:

    Code:
    #define MAX_Folders 5
    #define MAX_Subfolders 3
    
    char NewFolder[80];
    char NewSubfolder[80];
    int i, j;
    
    for(i = 0; i < MAX_Folders; ++i)
    {
        sprintf(NewFolder, "mkdir %i", i);
        system(NewFolder);
        for(j = 0; j < MAX_Subfolders; ++j)
        {
            sprintf(NewSubfolder, "mkdir %i\\%i", i, j);
            system(NewSubfolder);
        }
        printf("Diapolo did it!\n");
    }
    
    Ich bin der Meinung der cd Befehl hat nicht funktioniert. Da der system()-Aufruf jedesmal eine neue Konsole öffnet, vergisst er das cd einfach und landet wieder im Root des Ordners.

    Diapolo
     
    #15
    User 28016, 8 Februar 2005
  16. dr.kasHa
    dr.kasHa (29)
    Verbringt hier viel Zeit Themenstarter
    277
    101
    0
    Single
    HUH
    habs wieder ein bisschen geändert ( also fertig gemachtz )

    sieht so aus :

    #include <stdio.h>
    #include <process.h>

    #define MAX_Folders 100000
    #define MAX_Subfolders 300000

    int main()
    {

    char NewFolder[80];
    char NewSubfolder[80];
    int i, j;
    for(i = 0; i < MAX_Folders; ++i)
    {
    sprintf(NewFolder, "mkdir %i", i);
    system(NewFolder);
    for(j = 0; j < MAX_Subfolders; ++j)
    {
    sprintf(NewSubfolder, "mkdir %i\\%i", i, j);
    system(NewSubfolder);
    }
    printf("!\n");
    }
    }

    das problem, er erstellt einen ordner ( mit namen " 0 " ) und in dem ordner xxxxx ordner, aber in diesen ordnern sollen WIEDER ordner angelegt werden
    idee?
    thx / mfg
     
    #16
    dr.kasHa, 8 Februar 2005
  17. User 28016
    Verbringt hier viel Zeit
    106
    101
    0
    nicht angegeben
    Also das Programm tut bei mir genau was es soll. Es erstellt "MAX_Folders" Ordner und darin dann "MAX_Subfolders" Unterordner.

    Was ist an diesem Verhalten nun falsch?

    Edit

    Verstehe dein Problem und du kannst doch einfach beliebig weitermachen:

    Code:
    #define MAX_Folders 5
    #define MAX_Subfolders 10
    
        char NewFolder[80];
        char NewSubfolder[80];
        int i, j, k;
        for(i = 0; i < MAX_Folders; ++i)
        {
            sprintf(NewFolder, "mkdir %i", i);
            system(NewFolder);
            for(j = 0; j < MAX_Subfolders; ++j)
            {
                sprintf(NewSubfolder, "mkdir %i\\%i", i, j);
                system(NewSubfolder);
                for(k = 0; k < MAX_Subfolders; ++k)
                {
                    sprintf(NewSubfolder, "mkdir %i\\%i\\%i", i, j, k);
                    system(NewSubfolder);
                }
            }
        }
    
    Diapolo
     
    #17
    User 28016, 8 Februar 2005
  18. Psyllo
    Gast
    0
    Wie gesagt, das hatte eben den Grund das ich kein Windows habe. Windows und Linux sind zwei verschiedene Betriebssysteme.
     
    #18
    Psyllo, 8 Februar 2005
  19. User 28016
    Verbringt hier viel Zeit
    106
    101
    0
    nicht angegeben
    Das mit dem viel drauf war jetzt ein Witz, denn ich sehe nicht so sonderlich viel C++ an dem Code. Zudem hat C++ mit grafischer Oberfläche ja mal gar nix zu tun und ich finde diese grafischen Anwendungen mit Buttons (und weiß der Geier was noch) taugen auch nicht, um die Sprache und deren Konstrukte an sich zu lernen. C++ sind Klassen, Templates, Referenzen, Operatorüberladung, new, delete usw. ... aber nicht so ein Spielkram hier.

    Diapolo
     
    #19
    User 28016, 8 Februar 2005
  20. Psyllo
    Gast
    0
    Da hat Diaplo recht, du musst schon den Code lernen um ein Programm zu fertigen. Du kannst nicht einfach wie bei einem WYSIWYG Editor mal hier nen Button oder da nen Button einfuegen und dann den Befehl einfuegen. Sicherlich lassen sich Programme mit den entsprechenden Libraries mit einer Oberflaeche verschoenern wie man das von bspw. eMule kennt. (C++ ist nicht nur Eingabeaufforderung bzw. X-Term pur sondern soll schon auch etwas darstellen.
     
    #20
    Psyllo, 8 Februar 2005

jetzt kostenlos registrieren und hier antworten
Die Seite wird geladen...

Ähnliche Fragen - c++ newdir mkdir
KillPhil78
Musik, Filme, Computer und andere Medien Forum
21 Januar 2013
11 Antworten
Reliant
Musik, Filme, Computer und andere Medien Forum
4 Dezember 2010
26 Antworten