Wenn wir schon mal dabei sind, dann trage ich auch gerne meine Lösung vor, wie ich die gerne nutze. In diesem Fall erweitert, da z.B. JPEGs verschiedene Endungen haben können.
Delphi-Quellcode:
type
// bekannte Dateitypen
TFileType = (ftUnknown, ftJpg, ftGif, ftBmp);
type
// Assoziation zw. Dateiendung und Dateitype
TFileExt = record
Ext: String[5];
FileType: TFileType;
end;
const
// Liste bekannter Assoziationen
FILE_TYPES: array[0..4] of TFileExt = (
(Ext: 'jpg'; FileType: ftJpg),
(Ext: 'jpe'; FileType: ftJpg),
(Ext: 'jpeg'; FileType: ftJpg),
(Ext: 'gif'; FileType: ftGif),
(Ext: 'bmp'; FileType: ftBmp)
);
function GetFileType(FileName: String): TFileType;
var
lExt: String;
I: Integer;
Res: TFileType;
begin
Res := ftUnknown;
lExt := AnsiLowerCase(ExtractFileExt(FileName));
for I := Low(FILE_TYPES) to High(FILE_TYPES) do
if FILE_TYPES[I].Ext = lExt then
begin
Res := FILE_TYPES[I].FileType;
Break;
end;
Result := Res;
end;
...
...