function OnReplaceFilenameLeftToRight(const FileName: UnicodeString; const isFolder: Boolean):UnicodeString; var i:Integer; w:WideChar; Dash,NameNoExt,Hash:UnicodeString; begin if isFolder or (Length(FileName)<=114) then Result:=FileName else begin NameNoExt:=ChangeFileExt(FileName,''); Hash:=UnicodeStringCRC32Base64(NameNoExt); while (Hash[Length(Hash)]='=') do SetLength(Hash,Length(Hash)-1); Hash:=StringReplace(Hash,'/','$',false); Dash:='-'; Result:=Copy(NameNoExt,1,103)+Dash+Hash+ExtractFileExt(FileName); end; end;