Prüfen ob DateiTYP im Ordner vorhanden
-
Hi!
BIn gerade dabei ein Programm in C zu schreiben, welches prüfen muss, ob Dateien eines bestimmten Dateityps in dem Ordner, in dem es sich befindet(also das Programm), exestieren. Zuerst hab ichs so probiert:
[...] int exist (char *name) { FILE *fp = fopen (name, "r"); if (fp) fclose (fp); return fp != 0; } [...] if(exist("*.dat")) { [...] } [...] return 0; }
Aber das funktioniert nicht, denn die Funktion
exist
sucht dann nach dem "*". Im cmd funktioniert das, ich dachte hier vllt. auch.Aber jetzt weiß ich nicht wie ich es anstellen soll, dass des funktioniert.
Kann mir bitte jemand helfen?
mfg tecno
-
Die Erwähnung von cmd lässt mich annehmen, dass das ganze auf Windows laufen soll. Da ginge das etwa so:
#include <windows.h> /* ... */ int exists(char const *pattern) { HANDLE h; WIN32_FIND_DATA wfd; h = FindFirstFileA(pattern, &wfd); if(h == INVALID_HANDLE_VALUE) { return 0; } FindClose(h); return 1; }
wobei es dann unter Windows eigentlich üblich wäre, mit TCHAR etc. zu arbeiten, etwa
#include <tchar.h> #include <windows.h> /* ... */ int exists(LPCTSTR pattern) { HANDLE h; WIN32_FIND_DATA wfd; h = FindFirstFile(pattern, &wfd); if(h == INVALID_HANDLE_VALUE) { return 0; } FindClose(h); return 1; } /* ... */ if(exists(_T("*.dat"))) { /* ... */ }
-
#include <windows.h>
Was ist denn das?
-
Der Header mit der Windows-API?
-
wxSkip schrieb:
Der Header mit der Windows-API?
Was mngbd damit sagen will: "ANSI C wo bist du?"
-
#include <windows.h>
Das ist Ansi C.
-
seldon schrieb:
Die Erwähnung von cmd lässt mich annehmen, dass das ganze auf Windows laufen soll.
...wer lesen kann, ist klar im Vorteil.
Mit ANSI-C allein ist das Problem nicht lösbar. Jetzt sind wir uns alle einig, dass der Thread eigentlich ins WinAPI-Forum gehört, aber allein darauf hinzuweisen, schien mir nicht besonders hilfreich.
-
@seldon
danke, es funzt!!!