FindFirst und FindNext

saywordgirl

Grünschnabel
Hey!

Ich bin ganz neu hier und habe ein Frage.

Ich soll ein Programm schreiben, welches Dateien vergleicht. Die Dateien stehen in 2 verschiedenen Verzeichnissen. Nun sollen die Dateien aus dem einem Verzeichnis mit denen aus dem anderen vergleichen werden, ob sie den gleichen Inhalt haben.

Ich soll dazu FindFirst und FindNext benutzen. Leider habe ich da so meine Probleme und versteh gar nicht wirklich wie man das benutzt und wie es funtioniert. Wenn mir zusätzlich noch jemand schnell fread auffrischen könnte, wäre ich dankbar. Ich hab schon überall gesucht, aber ich kann nichts wirkliches dazu finden. Vielleicht steh ich aber momentan auch nur aufm Schlauch...

Liebe Grüsse
 
FindFirst und FindNext
Ist das nicht Pascal? Delphi oder so? Scheint es für C/C++ nicht zu geben (ausser in der kleinen Schreibweise findfirst, findnext).

fread() ist normaler Bestandteil von C. Wenn ich bei Google oder so danach suche, habe ich zig Treffer. Da sollte doch wohl was bei sein.
 
Ja, meine ich doch findfirst und findnext... sorry

Ich habe nach fread gegooglet, aber wie ich eben schon sagte, wahrscheinlich steh ich aufm Schlauch.

Trotzdem Danke!

LG
 
fread ist denke ich soweit klar.

Nur findfirst und findnext, da blick ich leider gar nicht durch. Ich hab auch danach gegoggelt, aber konnte mit dem was ich gefunden hab gar nix anfangen. Bin nicht gerade der C Profi und immer ein wenig scher von begriff....:(
 
Ich habe es mir angeschaut, aber leider versteh ich es nicht. Ich bin wirklich schwer von Begriff was sowas angeht.

Kannst du mir das vielleicht kurz in deinen eigenen Worten erklären?
Ganz einfach? Stell dir vor ich wäre blond... ;)
 
Ich habe mal einfach ein paar Kommentare in das Beispiel reingesetzt:

Code:
 /*Download:find.c*/

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

// hier wird ALL definiert - das ist eine Maske für die Dateiattribute,
// die die gefundenen Dateien aufweisen müssen. Stimmen die Attribute einer
// Datei nicht mit der Maske überein, wird sie ignoriert (nicht gefunden).
#define ALL FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_LABEL|FA_DIREC|FA_ARCH

int main(int argc, char *argv[])
{
  int ret;
  struct ffblk info;
  // ein Pfad muss als Parameter übergeben werden
  if(argc != 2)
  {
    fprintf(stderr,"Benutzung : %s suchpfad\n",argv[0]);
    exit (1);
  }

  // Finden wird mit dem Verzeichnisnamen, der Infostruktur, und der
  // Attribute-Maske ALL initialisert. info ist eigentlich kein Parameter, sondern
  // ein Rückgabewert (darin sind ja nach jedem Aufruf von findnext 
  // die Infos für die nächste Datei drin).
  ret=findfirst(argv[1],&info,ALL);
  // info enthält jetzt  Infos über die erste gefundene Datei, falls vorhanden
  while(ret==0)  // find...() geben 0 zurück, wenn nichts mehr gefunden wird
  {
    //Dateinamen und Grösse ausgeben
    printf("%20s : %6ld Bytes\n",info.ff_name,info.ff_fsize);
    ret=findnext(&info);
    // info enthält jetzt  Infos über die NÄCHSTE gefundene Datei, falls vorhanden
    // wenn nicht, ist ret == 0
  }
  return 0;
}
Hilft das weiter?
 
Zurück