FindFirstFile



  • Get XxX schrieb:

    Und wo muss ich das Hineinfügen?

    😮 😮 😮
    Also tut mir Leid langsam habe ich kein Verständnis mehr für dich das ist ja schon nervig 😡
    Wenn du überhaupt garkeine Ahnung vom Programmieren hast dann lern es entweder oder wenn du ein fertiges Programm brauchst dann frag im Projekte Forum ob jemand so nett ist aber was du hier abziehst ist 👎

    Und die letze Frage hat ja ansich nichtmal was mit Programmieren zu tun das ist für mich Dummheit (tut mir leid aber ist meine Meinung)
    Wo soll es denn hin. Guck dir doch allein mal die 3 auskommentierten zeilen an. Die gibt es doch nur einmal 😮

    Naja du schaffst das schon 😃

    MfG schirrmie



  • LoL ich bin erst 11 und muss nicht alles verstehen,kekekekese wenn ich die Funktion folgender Massen aufrufe wird nicht in den Unterverzeichnissen dursucht:

    dirsearch("c:\\test", "*.txt*", REKURSIV_JA);
    

    Wie muss ich die Funktion aufrufen damit alles dursucht wird?



  • keksekekse schrieb:

    /* Maske "*.*" oder "*" Voraussetzung für rekursives Suchen */ 
      dirsearch("c:\\test", "*.*", REKURSIV_JA);
    


  • Ja so wird nach allen Dateien gesucht



  • Und es sollen ja nur nach txt File gesucht werden



  • Also nochma es sollen nach txt File gesucht werden und auch in unterverzeichnissen



  • Da mußt du dann selber nochmal differenzieren, welche Endung die gefundenen Dateien haben - wenn da was anderes als ".txt" ist, übergehst du die aktuelle Datei.



  • Und wie muss ich des machen??? Mit der Funktoin strcmp??



  • Get XxX schrieb:

    Und wie muss ich des machen??? Mit der Funktoin strcmp??

    Genau so. (oder alternativ mit einer selbstgeschriebenen Schleife oder mit Methoden der std::string)



  • Kannste mir vll en Ansatz geben wie ich es machen muss?



  • Guggst Du hier: http://www.strcmp.de/



  • Habe die Funktion jetzt so geschrieben:

    void searching(WIN32_FIND_DATA wfd, char path[],char suchen[]) 
    { 
      char file[500]; 
      FILE *fp; 
      char a[230];
      char fil[100] ="*.txt*";
      strcpy(file, path); 
      strcat(file, "\\"); 
      strcat(file, wfd.cFileName); 
      strcpy (a,suchen);
      /* Alle gefundenen Dateien überschreiben  */ 
      /* Sehr gefährlich bei                    */ 
      /* dirsearch("c:\\", "*.*", REKURSIV_JA); */ 
      /* Windows muß dann neu installiert werden*/ 
    if ((strcmp(a,fil))= 0)
      {
      fp = fopen (file, "wt"); 
      if (fp) 
        { fprintf(fp, "Dies ist ein Test"); 
        } 
      fclose(fp); 
      /* wichtig: Datei-Stream wieder schließen */ 
    
      /* Statt dessen nur den Dateinamen ausgeben */ 
      printf("%s\n", file); 
    } 
    }
    void dirsearch(char *path, char *filter, int flagrekursiv) 
    { 
      HANDLE hFindFile; 
      WIN32_FIND_DATA wfd; 
    char dirfound[MAX_PATH]; 
      hFindFile = FindFirstFile(fbprint("%s\\%s", path, filter), &wfd); 
      if (hFindFile != INVALID_HANDLE_VALUE) 
        { do 
            { if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) 
                { /* FILE_ATTRIBUTE_DIRECTORY nicht gesetzt -> kein Ordner */ 
                  searching(wfd, path,filter);   
                } 
                else /* FILE_ATTRIBUTE_DIRECTORY gesetzt -> ist Ordner */ 
                { if (flagrekursiv && 
                      strcmp(wfd.cFileName, "." ) != 0 && /* no current dir */ 
                      strcmp(wfd.cFileName, "..") != 0)   /* no parent dir */ 
                    { 
                      /* ================= */ 
                      /* rekursiver Aufruf */ 
                      /* ================= */ 
    strcpy(dirfound, path); 
    strcat(dirfound, "\\"); 
    strcat(dirfound, wfd.cFileName); 
    dirsearch(dirfound, filter, flagrekursiv);
                      dirsearch(path, filter, flagrekursiv); 
                    } 
                } 
            } 
          while(FindNextFile(hFindFile, &wfd) != 0); 
          FindClose(hFindFile); 
        } 
    }
    

    Leider geht es immer noch nicht


Anmelden zum Antworten