1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
{%MainUnit fileutil.pas}
function ExtractShortPathNameUTF8(const FileName: String): String;
var
lPathSize: DWORD;
WideFileName, WideResult: UnicodeString;
begin
// WinCE doesnt have this concept
{$ifdef WinCE}
Result := FileName;
{$else}
if Win32MajorVersion >= 5 then
begin
WideFileName := UTF8ToUTF16(FileName);
SetLength(WideResult,Max_Path);
lPathSize := GetShortPathNameW(PWideChar(WideFileName), PWideChar(WideResult), Length(WideResult));
SetLength(WideResult,lPathSize);
Result := UTF16ToUTF8(WideResult);
end
else
Result:=LazUTF8.SysToUTF8(SysUtils.ExtractShortPathName(LazUTF8.UTF8ToSys(FileName)));
{$endif}
end;
|