Dateierweiterung parsen

A

alter

Grünschnabel
Hallo Ihr Lieben,

ich gehe ein Verzeichnis durch und lese die Dateinamen aus. Die Dateien sollen dann like tt_mm_yyyy_lfdnr umbenannt und in ein Verzeichnis entsprechend yyyy/mm verschoben werden, soweit bin ich schonmal. Gerne würde ich jedoch die Dateierweiterung der Originaldatei behalten und wieder dranhängen.

Die Frage ist: wie ermittele ich die Dateierweiterung?

Viele Grüße
 
Möp

Und was machst Du wenn jemand ein Wldcard verwendet ? Oder wenn Jmd. versucht Dir eine ELF-Datei als ascii-file unterzujubeln, oder eine JPG-Datei mit der Extension .GIF verwendet ?? Oder gar keine Dateierweiterungen ?

Dateierweiterungen sind unter UNiX rein arbiträr, wenn eine Datei eine Extension erhält, so geschieht das nur aus Gründen einer besseren Übersicht.

Siehe:

http://answers.google.com/answers/threadview?id=191785

und

http://open.itworld.com/5040/nlsunix071129/page_1.html

Besser Du versuchst die Metadaten der Datei auszuwerten, sofern Dein Dateisystem es zulässt.


EDIT: hab da was gefunden http://www.linuxjournal.com/article/7552 könnte was für Dich sein...

MfG
 
Zuletzt bearbeitet:
Und was machst Du wenn jemand ein Wldcard verwendet ?

Bei einem Kommandozeilentool expandiert die Shell das bereits, sofern moeglich.

Dateierweiterungen sind unter UNiX rein arbiträr, wenn eine Datei eine Extension erhält, so geschieht das nur aus Gründen einer besseren Übersicht.

Ich habe deine Links jetzt bloss kurz ueberflogen, aber diese Aussage ist so pauschal einfach nicht richtig. Ein kurzes Beispiel:
Code:
$ cat test.abc
#include <stdio.h>

int main(int argc, char *argv[]) {
        printf("Hello World!");
}

$ gcc -o test test.abc
test.abc: file not recognized: File format not recognized
collect2: ld returned 1 exit status
$ mv test.{abc,c}
$ gcc -o test test.c
$ ./test
Hello World!

file(1) funktioniert auch nicht immer gut. Das zeigt einem auch mal Quelltexte als "englisch text" an und dergleichen.
 
Hallo,

ich gebe zu, dass ich unter XP entwickele :)

Mein jüngstes Programm archiviert Fotos: jpg, img, bmp ... und braucht die Dateierweiterung lediglich dazu, um diese an den neuen Namen der Datei, die sich aus dem Datum und einer fortlaufenden Nummer des Tages ergibt, wieder anzuhängen.

23.03.2008_001.jpg, 23.03.2008_002.jpg...

Mein Weg zur Ermittelung der Dateierweiterung gibt den nativ Dateinamen zurück, sofern die Datei keine Erweiterung hatte.

Wenn Ihr möchtet, schaut ihr Euch mal an, was ich in der letzen Zeit in c programmiert habe:

Meine Programme

Das Programm arcfoto hatte ich bis jetzt als Perl-Sript laufen, aber als arcfoto.exe in c geschrieben, ist die Verwendung so richtig giftscharf :)


Viele Grüße vom Alten
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

LinuxServerManager (LSM) tester gesucht

Spalten einer Datei in neue Datei integrieren.

Dateien selektieren und zählen

Internetfreigabe unter Ubuntu Netbook Remix

Zurück
Oben