Dateitypen am Header erkennen


#1

wie z.B. in diesem Thread vorgekommen:
Editing tags breaks the file

und auch in diesem geschildert:
/t/19223/1

kommt es immer mal wieder vor, dass Dateien von MP3tag gelesen werden und dann falsch behandelt, da die Dateinamenerweiterung einen anderen Typ vorgaukelt als wirklich in der Datei zu finden ist.

Mein Vorschlag wäre, nicht nur die Endung als Unterscheidungskriterium zu nehmen, sondern auch den Header einer Datei auszuwerten, um dann ggf. eine Warnung abzugeben, dass Header und Erweiterung nicht zusammenpassen oder die Datei gleich nach der Header-Information zu behandeln.

Wobei ich befürchte, dass dies das EInlesen deutlich verlangsamen wird.


#2

Sorry, aber wenn das Dateisystem so unsauber gepflegt ist, dass die Dateiendungen nicht stimmen,
worauf soll man sich dann noch verlassen könnnen?
Sind die Daten vielleicht auch zerstückelt und zerstört?
Also wo rauf ich hinaus will: Wo fängt man an und wo hört man auf?

Das kann auch wieder zu weitereichenderen Folgen führen und am Ende mehr Fehler verursachen als es lösen soll.


#3

Ach, naja.
Es scheint Programme zu geben, die einem trotz irgendeiner Endung die Dateien richtig öffnen.

Nun ist das Abstützen auf Dateinamenerweiterungen bei weitem nicht die einzige Möglichkeit, Dateitypen zu unterscheiden. Linux und MacOS (schon seit Finder-Zeiten mit Version 6) ordnen den Dateien einen Typ gemäß Header zu und sind nicht auf eine Erweiterung angewiesen.

Diese besondere Delikatesse in dem einen Thread, dass ein Transfer-Programm an mp4-Dateien mal eben ein mp3 dranhängt, führte in dem Fall sogar zu dem Vorwurf an MP3tag, dass Tagging die Datei zerstöre. Dass da das andere Programm schon mal Quatsch macht, steht außer Frage.

Wenn es nun eine Warnung gäbe, dass die vorgefundenen Header-Daten aber nicht zur Endung passen, dann wäre mein Wunsch schon erfüllt.