Kaum fragt man, schon fallen einem die richtigen Suchbegriffe für Google ein.
Ein Machbarkeitskonzept auf der Basis einer Antwort auf
stackoverflow von Bummi :
Delphi-Quellcode:
function IstRAWFormat(const Dateiname:string):Boolean;
var Datei:File; Buf:array [0..19] of Byte; BufCRW:TBytes;
//------------------------------------------------------------------------------------------------------------------------------------------
function ByteArrayPos(const SearchArr : array of byte; const CompArr : array of byte):integer;
var
Comp,Search : AnsiString;
begin
SetString(Comp, PAnsiChar(@CompArr[0]), Length(CompArr));
SetString(Search, PAnsiChar(@SearchArr[0]), Length(SearchArr));
Result := Pos(Search,Comp) - 1;
end;
//------------------------------------------------------------------------------------------------------------------------------------------
begin
{$I-}
Result := False;
Try
Try
AssignFile(Datei,Dateiname);
Reset(Datei, 1);
BlockRead(Datei, Buf[0], 20);
Except
exit;
End;
BufCRW := [$49,$49,$1A,$00,$00,$00,$48,$45,$41,$50,$43,$43,$44,$52,$02,$00];
If ByteArrayPos(BufCRW,Buf) = 0
then Result := True;
Finally
CloseFile(Datei);
SetLength(BufCRW,0);
End;
{$I+}
end;
@Klaus01: Es ging um RAW-Dateien. Da gibt es kein normales EXIF und es hätte auch nichts genützt, da ich die Dateien ja anhand ihrer Signatur und nicht anhand ihrer Dateierweiterung identifizieren wollte.
@t.roller: Danke für den Hinweis! Die Liste erscheint aber nicht vollständig, so habe ich z.B. die ARW-Dateien von Sony nicht gefunden.