From 0986ec79fed4c1811c2fe6c77a174c43e0d9302a Mon Sep 17 00:00:00 2001 From: bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Sun, 19 May 2013 12:17:03 +0000 Subject: [PATCH] LazFileUtils: Fix FileExistsUTF8 on Windows when FileName contains uncode characters outside current codepage. git-svn-id: trunk@41283 - --- components/lazutils/lazfileutils.pas | 5 +---- components/lazutils/unixlazfileutils.inc | 5 +++++ components/lazutils/winlazfileutils.inc | 11 +++++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/components/lazutils/lazfileutils.pas b/components/lazutils/lazfileutils.pas index a83e8d64ca..2f86ccf457 100644 --- a/components/lazutils/lazfileutils.pas +++ b/components/lazutils/lazfileutils.pas @@ -1062,10 +1062,7 @@ begin end; end; -function FileExistsUTF8(const Filename: string): boolean; -begin - Result:=SysUtils.FileExists(UTF8ToSys(Filename)); -end; + function FileAgeUTF8(const FileName: String): Longint; begin diff --git a/components/lazutils/unixlazfileutils.inc b/components/lazutils/unixlazfileutils.inc index b229a7e0cb..1e0dff92a0 100644 --- a/components/lazutils/unixlazfileutils.inc +++ b/components/lazutils/unixlazfileutils.inc @@ -36,6 +36,11 @@ begin InvalidateFileStateCache(Filename); end; +function FileExistsUTF8(const Filename: string): boolean; +begin + Result:=SysUtils.FileExists(UTF8ToSys(Filename)); +end; + function ExpandFileNameUtf8(const FileName: string; {const} BaseDir: String = ''): String; var IsAbs: Boolean; diff --git a/components/lazutils/winlazfileutils.inc b/components/lazutils/winlazfileutils.inc index 3f3ea8cbf8..16e0e84a23 100644 --- a/components/lazutils/winlazfileutils.inc +++ b/components/lazutils/winlazfileutils.inc @@ -181,6 +181,17 @@ begin InvalidateFileStateCache(Filename); end; +function FileExistsUTF8(const Filename: string): boolean; +var + Attr: Longint; +begin + Attr := _FileGetAttrUTF8(FileName); + if Attr <> -1 then + Result:= (Attr and FILE_ATTRIBUTE_DIRECTORY) = 0 + else + Result:=False; +end; + {******* ANSI functions *******}