www.mikrocontroller.net

Forum: PC-Programmierung Win32 API Include in C für directory listing gesucht ...


Autor: C-Progger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja alles ganz nett und schön mit der MFC und Objektorientierung usw.
Doch ich brauche nur die Headerdatei und die Funktionen für's 
FileHandling in C unter Windows32 !
Das Programm soll ganz einfach auf der Kommandozeile laufen, innerhalb 
des aktuellen Verzeichnisses alle Dateien durchgehen, davon ein MD5 
nehmen und wenn zwei Dateien im MD5 identisch sind eine davon löschen.
Ich suche jetzt über eine Stunde und finde ausschließlich MFC, C#, JAVA 
und sonstige Infos :-(
Bin ja kurz davor 'nen Installer für cygwin mit'm shellscript zu bauen 
...
Muß denn heutzutage jedes mini Tool 'nen Overhead von zwanzig MBs haben, 
nur weil's gerade in ist ?
Sorry Offtopic ...
Also nochmal, wer kann mir sagen welche Includes ich in den OpenWatcom 
Compiler für den Zugriff auf Verzeichnisse und Dateien darin in reinem C 
brauche (windows.h ja schonmal, oder) ?
Danke,
C-Progger

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also nochmal, wer kann mir sagen welche Includes ich in den OpenWatcom
> Compiler für den Zugriff auf Verzeichnisse und Dateien darin in reinem
> C brauche (windows.h ja schonmal, oder) ?

Ja, genau. Mehr solltest du nicht brauchen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such doch einfach mal in den Headerdateien nach "FindFirstFile" und 
"FindNextFile", das sind Win32-API-Funktionen, mit denen sich auch 
Directorylistings erstellen lassen.

windows.h includiert üblicherweise alles benötigte.

Autor: C-Progger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem FindFirst und FindNext war schon klar ;-)
Nur alle Infos im Web bezogen sich auf C#, JAVA und C++ mit MFC ;-)
Der Zugriff auf die Dateien funzt jetzt, nur stehe ich gerade ziemlich 
auf dem Schlauch :-(
Ich nehme folgenden MD5 Sourcecode:
http://xyssl.org/code/source/md5/
Da mache ich dann logischerweise sowas:
...
unsigned char cmd5_1[16];
unsigned char cmd5_2[16];

if(md5_file(FindFileData.cFileName,cmd5_1)||md5_file(FindFileData1.cFileName,cmd5_2))
{
  printf("\n Error md5 fileopening ! \n");
  return -1;
}
Jetzt sollten eigentlich in den beiden Variablen die MD5 Werte der Datei 
stehen.
Nur mit
if(cmd5_1==cmd5_2)
{
  printf("\n Deleting now %s \n",FindFileData1.cFileName);
  if(remove(FindFileData1.cFileName))
  {
    printf("\n Error in file deletion ! \n");
    return -1;
  }
}
werden identische Dateien nicht erkannt :-(
Kann mir mal bitte jemand meinen Denkfehler aufzeigen ?
Danke,
C-Progger

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> if(cmd5_1==cmd5_2)

Du brauchst keine API-Dokumentation, sondern ein C-Lehrbuch.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleine Hilfestellung: Was du geschrieben hast, ist identisch mit
if(&cmd5_1[0]==&cmd5_2[0])
Such mal lieber in Richtung strcmp()/memcmp().

Autor: C-Progger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,
nun mal NEU nach Absturz, Neustart und restlichem Scheiß :?
Also wenn jemand mal einen Blick auf die MD5 Routine geworfen hätte, 
wüßte er sie es das in das char Array Zahlen hineinkommen und KEINE 
Buchstaben !
Auf den Trichter mit strcmp bis hin zu mcmp usw. war ich auch schon 
gekommen ...
Nützt nur nix :-(
Ich peile einfach nicht das Format was die MD5 Routine in das char array 
packt !
Ist jetzt sowieso zu spät um klare Gedanken zu fassen ...
Trotzdem Danke,
C-Progger

GÄÄÄÄHHHHNNNNN

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Blumen, aber es ist völlig wurscht ob in einem Array 
Zahlen, Buchstaben oder Hirnwindungen stecken. Es bringt nur einfach 
nichts, die Adresse von MD5-Summen zu vergleichen an Stelle der Summen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.