Hallo Rolf,
vor allem kostet Format-Sniffing so gut wie keine Performance
das möchte ich jetzt mal in Frage stellen.
weil sich das Format eigentlich immer an den ersten Bytes der Datei ablesen lässt und nur einige wenige Bytes zu testen sind.
Ja, bei den meisten Dateiformaten ist das so. Ich vermute aber, es ist trotzdem ein merklicher Unterschied, ob man Informationen zum Dateityp nur aus dem Namen ableitet (so wie der Windows-Explorer das tut), oder auch die ersten n Bytes des Dateiinhalts untersucht (was viele Linux-Dateimanager tun). Denn dazu ist ein zusätzlicher Aufruf von fopen(), fread() und fclose() nötig.
Das mag bei einer einzelnen Datei keine Rolle spielen; bei einem Verzeichnislisting mit Hunderten, vielleicht sogar Tausenden von Dateien aber sehr wohl. Das wird bei Unixoiden ein Stück weit dadurch kompensiert, dass der einmal ermittelte MIME-Typ auch als Metainformation im Verzeichnis gespeichert wird.
Bei Dateiformaten, die ein reines Binärabbild sind, läuft das natürlich ins Leere, aber gibt's da relevante?
Mir fällt spontan keins ein, obwohl mp3 da nah rankommt.
Live long and pros healthy,
Martin
Bei Erwärmung steigt das Thermometer, bei Erkältung singt es.