Forum: PC-Programmierung [c] Gleiche Dateien in einem Verzeichnis öffnen


von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

Gibt es in C Bibliotheksfunktionen oder ähnliches damit ich alle Dateien 
mit gleicher Endung (z.B. *.jpg) öffnen kann??

MFG Mixer

von Klaus (Gast)


Lesenswert?

Warum sollte man das wollen?

von Sven P. (Gast)


Lesenswert?

Auf POSIX-Systemen gibts ftw(), damit kann man einen Dateibaum 
ablatschen. Auf den Dateityp prüft man dann am einfachsten mit strcmp().

Alternativ gibts in POSIX auch glob(), damit kann man Dateimuster 
suchen.

von Mark B. (markbrandis)


Lesenswert?

Klaus schrieb:
> Warum sollte man das wollen?

Er meint wohl alle nacheinander, nicht alle gleichzeitig. Z.B. für eine 
Batch-Verarbeitung.

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Klaus schrieb:
> Warum sollte man das wollen?

Damit man z.B. die Metadaten von Bildern oder mp3-Stücken auslesen kann 
und man nicht unbedingt hunderte dateien einzeln eingeben will!

Das ganze sollte dann plattformunabhängig auf Linux sowie Windows 
arbeiten!

MFG Mixer

von Sven P. (Gast)


Lesenswert?

Also wenn du dich an POSIX hälst, läuft es eigentlich überall, also vom 
alten Unix-Großrechner bis hin zum WLAN-Router.
Nur halt Windows steht wieder quer.

Ich glaub, unter Windows gabs mal so ein FindFirstFile oder so grübel

scandir() gäbs übrigens auch noch.

von Gerry E. (micky01)


Lesenswert?

In der Regel leistet unter Linux die Shell schon die Vorarbeit:

> Tuwas *.jpx

wird expandiert zu

 Tuwas f1.jpx f1.jpx ... fn.jpx

Man braucht also nur die argv-Liste abrackern.

Wer sowas unter Windows braucht, dem sei MinGW empfohlen.

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

ich möchte eigentlich die Dateien im Programm eingeben und nicht über 
die Kommandozeile übergeben.

Das heisst, dass
http://en.wikipedia.org/wiki/Dirent.h
auf Windows nicht funktioniert??

MFG Mixer

von Karl H. (kbuchegg)


Lesenswert?

Mixer S. schrieb:
> Das heisst, dass
> http://en.wikipedia.org/wiki/Dirent.h
> auf Windows nicht funktioniert??

Das heist es nicht zwangsläufig.
Wenn deine Runtime-Library die entsprechenden Calls so aufbereitet, dass 
sie über die Windows API das Gewünschte besorgen, dann funktioniert das 
selbstverständlich auch.

Im Zweifel einfach ausprobieren und/oder die Doku zu diesen Calls auf 
deinem Compiler lesen.

Zur Not kann man ja auch einmal weitergoogeln
"Win32 dirent"
Und schon wird man fündig :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.