Announcement

Collapse
No announcement yet.

Auslesen Dateien im Ordner

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auslesen Dateien im Ordner

    Hi, ich hab mal eine banaale Frage.
    Wie ist es möglich mit diesem Code den Pfad variabeler zu machen.
    Also um mindestens 2 Ordner erweitern zu können.

    Code:
    char param[200]="D:\\Torrz\Upz";
    Ist auch eine ausgabe der Dateien und Ordner in eine Txt möglich ?

    Code:
    #include <stdio.h>
    #include <windows.h>
    #include <string.h>
    
    int dir(char param[]);
    char stern[4]="**";
    char option[200];
    char thisparam[200];
    char Verzeichnis[200]="";
    char doppelslash[3]="//";
    char BackupSlash[200];
    
    int main()
    
    {
    char param[200]="D:\\Torrz\Upz";
    dir(param);
    
    return 0;
    }
    
    int dir(char param[])
    
    {
    
    HANDLE fHandle;
    WIN32_FIND_DATA wfd;
    
    system("cls");
    
    memset(Verzeichnis,0,sizeof(Verzeichnis));
    
    lstrcat(Verzeichnis,param);
    lstrcat(Verzeichnis,doppelslash);
    lstrcat(param,doppelslash);
    lstrcat(Verzeichnis,stern);
    
    strcpy(BackupSlash,Verzeichnis);
    
    fHandle=FindFirstFile(Verzeichnis,&wfd);
    
    do
    {
        // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert)
        // hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist
        if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
        {
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                       printf("%s",wfd.cFileName);
                  printf(" DIR\n");
    
            //SUCHFUNKTION nicht vergessen
            }
            else
            {
               printf("%s\n",wfd.cFileName);
            }
    
        }
    
    }
    while (FindNextFile(fHandle,&wfd));
    
    scanf("%s",&option);
    if (option=="DIR");
    scanf("%s",&thisparam);
    lstrcat(param,thisparam);
    dir(param);
    
    
    FindClose(fHandle);
    
    
    return 0;
    
    }
    Danke im vorraus !

  • #2
    Stichwort rekursive Programmierung

    Quelltext von
    http://www.marquardtnet.info/cecke/d...ilesearch.html

    kannst du haben
    Christian

    Comment


    • #3
      ah, thx.

      Werd mich mal mit rekursive Programmierung befassen.

      Comment


      • #4
        Problem mit &quot;Temponary Internet Files&quot;

        Hallo,

        ich habe auch diese Funktion benutzt, bzw. so ähnlich und sie geht wirklich sehr gut, aber in dem Ordner "Temponary Internet Files" funktioniert sie irgendwie nicht. Weiss jemand warum?
        Hier die Funkton die ich beutzt habe:
        Code:
        void __fastcall TForm1::Button1Click(TObject *Sender)
        {
        HANDLE fHandle;
        WIN32_FIND_DATA wfd;
        
        fHandle=FindFirstFile("C:\\Dokumente und Einstellungen\\user\\Lokale Einstellungen\\Temporary Internet Files\\*",&wfd);
        
        do
        {
            // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert)
            // hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist
            if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
            {
                if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                {
                    MessageBox(0,wfd.cFileName,"Folgendes Verzeichnis wurde gefunden:",0);
                    // Datei ist keine, sondern ein Verzeichnis...
                    // Hier könnte man dasselbe nochmal machen, um auch die
                    // Unterverzeichnisse zu scannen ;-)
                }
                else
                {
                    MessageBox(0,wfd.cFileName,"Folgende Datei gefunden:",0);
                }
            }
        }
        while (FindNextFile(fHandle,&wfd));
        FindClose(fHandle);
        }
        Besten Dank schonmal

        Comment


        • #5
          Weil Temp.... kein einzelner Ordner ist. Dieser enthält weitere Ordner und erst diese die temp. Dateien.
          Christian

          Comment


          • #6
            Hat sich erledigt. Die Funktion arbeitet schon, aber Windows speichert die Dateien nicht dirket da. Nachzulesen:
            http://www.browsertools.net/IE-Priva...index-dat.html

            Comment


            • #7


              Also bei mir sind die Dateien -wie ich bechrieben habe - da wo sie sein sollen. Und was die index-Datei damit zu tun hat erschließt sich mir nicht.
              Zuletzt editiert von Christian Marquardt; 01.03.2009, 11:03.
              Christian

              Comment

              Working...
              X