system-befehle....ordnerinhalt anzeigen lassen!



  • Hallo leute!

    Ich hab mal ne fragen, was gibt es alles für system() befehle?
    Ausser dir und csl und pause?

    Und wie kann ich mit dir den inhalt von anderen ordnern (nicht den ordner wo programm ausgeführt wird) anzeigen??



  • Kein_Ahnung schrieb:

    Und wie kann ich mit dir den inhalt von anderen ordnern (nicht den ordner wo programm ausgeführt wird) anzeigen??

    system("dir pfad");
    


  • ok danke, das geht, aber hat jemand eine liste mit den systembefehlen?
    oder gibt es auch bessere lösungen?(vorallem für cls, dir und so??)
    Weil system soll ja nicht sooo gut sein...



  • Kein_Ahnung schrieb:

    Ich hab mal ne fragen, was gibt es alles für system() befehle?
    Ausser dir und csl und pause?

    Was du an system übergeben kannst ist absolut implementationsspezifisch und hat nichts mit Standard-C++ zu tun. system startet nur den Command-Interpreter. Was der für Commands versteht ist abhängig vom Betriebssystem und nicht von C++.



  • ok, aber wie kann ich ohne dieses system, zB den bildschirm leeren?



  • Kein_Ahnung schrieb:

    ok, aber wie kann ich ohne dieses system, zB den bildschirm leeren?

    In Standard-C++ überhaupt nicht. Das ist BS-abhängig. Für Windows schau einfach mal in die Dos-/Konsolen-FAQs.



  • so um ein verzeichnis index anzulegen solltest du nicht system nehmen
    sondern z.b. WIN32_FIND_DATA

    ich programmiere gerade einen webserver
    und dafür brauche ich ja auch eine funktion die bei verzeichnissen ohne einen
    default index(z.b. index.html) eine verzeichnis übersicht ausgibt.

    diese poste ich hier mal muss aber dazu sagen der funktion sellbst wird ein verzeichnis in der form htdocs/ordner1/ordner2/ übergeben
    die "funktion" WIN32_FIND_DATA
    erwartet aber ein verzeichniss in der form
    htdocs\\ordner1\\ordner2\\

    die funktion ergänzt einen string um die information
    zuerst fügt es die Verzeichnisse ein dann die dateien
    weiterhin ist zu sehen wie man bestimmte dateien auschließt
    in meinen fall alle versteckten und die dateien .htaccess, .htpasswd und die beide sinnlosen angaben . und ..(DOS religte)

    std::string showdir(const char *directory,const char *path, std::string body)
    {
            WIN32_FIND_DATA fd;
            HANDLE hfind;
    
            char buf[255];
            char newbuf[255];
            int i;
            int j;
            std::string bodytemp;
    
            strcpy(buf,directory);
    
            i = 0;
            j = 0;
            while( buf[i] != 0 )
             {
               if( buf[i] == '/' )
               {
                 newbuf[j] = '\\';
                 newbuf[j+1] = '\\';
                 j+=2;
               }
               else
               {
                 newbuf[j] = buf[i];
                 j++;
               }
                 i++;
               }
                 newbuf[j] = 0;
                 strcat( newbuf , "*.*" );
    
            hfind = FindFirstFile(newbuf,&fd);
            while(hfind != INVALID_HANDLE_VALUE)
            {
              if ((std::string)fd.cFileName != "." && (std::string)fd.cFileName != ".." && (std::string)fd.cFileName != ".htaccess" && (std::string)fd.cFileName != ".htpasswd" && fd.dwFileAttributes != FILE_ATTRIBUTE_HIDDEN)
              {
               if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                { 
                    sprintf(newbuf,"<TR><TD><A HREF=\"%s%s\">%s</a></TD>\t\t<TD>-</TD><TD> Verzeichniss</TD></TR>\n",path,fd.cFileName,fd.cFileName);
                       body += newbuf;
                }
                else
                { 
                    sprintf(newbuf,"<TR><TD><A HREF=\"%s%s\">%s</a></TD>\t\t<TD>%d</TD><TD> BYTES???</TD></TR>\n",path,fd.cFileName,fd.cFileName,fd.nFileSizeLow);
                       bodytemp += newbuf;
    
                }
              }
                    if(!FindNextFile(hfind,&fd))
                            break;
            }
    
            FindClose(hfind);
    
    body +=bodytemp;
    
    return body; 
    
    }
    

Anmelden zum Antworten