Hier mal eine kleine Funktion, die eben mal schenll zusammengetippt habe, um die Beschreibung des Dateityps zu ermitteln:
Delphi-Quellcode:
uses
ShellAPI;
function GetFileTypeInfo(const Filename: String; var TypeInfo: String): Boolean;
var
FileInfo: TSHFILEINFO;
begin
ZeroMemory(@FileInfo, sizeof(SHFILEOPSTRUCT));
result := SHGetFileInfo(PChar(Filename), 0, FileInfo, sizeof(SHFILEOPSTRUCT), SHGFI_TYPENAME) <> 0;
if result then
TypeInfo := FileInfo.szTypeName
else
TypeInfo := '';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ret: DWORD;
s: String;
begin
if GetFileTypeInfo('c:\autoexec.bat', s) then
ShowMessage(s)
else
ShowMessage(SysErrorMessage(GetLastError));
end;
Man kann dies zwar auch über die Registry machen, aber, man sollte, wenn eine
API-Funktion dazu existiert, die
API-Funktion vorziehen, da sich die Informationen in der Registry ändern können. Mit der
API-Funktion ist man immer auf der sichern Seite.
Weiterführende Links:
SHGetFileInfo
Stichworte: SHGetFileInfo, Dateiinformationen, Dateityp