ExtractFileExt returns the file name extension of a file path. The input parameter can either be just a filename or a complete file path.

The extension is considered to be anything that includes and follows the rightmost '.' in a file name. The case of each character is not changed.

Declaration: Function ExtractFileExt( const FileName : string) : string

A basic example follows.

procedure OnMapEvent(var Value:Variant);
begin
Value := ExtractFileExt(Source.FileCon.CurrentFilename);
end;

Therefore:

  • ExtractFileExt('abc.txt') returns '.txt'

  • ExtractFileExt('abc') returns '', because there is no '.' in the file name

  • ExtractFileExt('abc.') returns '.'

  • ExtractFileExt('abc...') returns '.'

  • ExtractFileExt('abc.ref1.txt') returns '.txt'

  • ExtractFileExt('abc.TXT') returns '.TXT'

The following code illustrates this function more completely,

procedure ScriptEvent (var Value : variant);
var
f: string;
begin
f := 'abc'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc..'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc...'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.a'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.A'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.txt'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.Txt'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.txT'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.TXT'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.ref1.txt'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.ref1.ref2.txt'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
f := 'abc.exe'; LogInfo('ExtractFileExt(''' + f + ''') -> ''' + ExtractFileExt(f) + '''');
end;