Wenn es die
API GetFileAttributesEx ausschließlich nur als
Unicode gäbe, dann PWideChar und ein
Unicode-String (den "String" nach
Unicode casten).
Schwer zu verstehen ist das ja nun nicht wirklich:
GetFileAttributesEx + PChar + String ... natürlich nur, wenn diese Funktion auch compilerabhänig deklariert wurde.
GetFileAttributesExA + PAnsiChar + AnsiString
GetFileAttributesExW + PWideChar + WideString/UnicodeString
Als Funktion existiert "GetFileAttributesEx" ja eigentlich garnicht. Nur als "unabhängige" Definition.
Delphi-Quellcode:
function GetFileAttributesEx(lpFileName: PChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL;
stdcall;
function GetFileAttributesExA(lpFileName: PAnsiChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL;
stdcall;
function GetFileAttributesExW(lpFileName: PWideChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL;
stdcall;
function GetFileAttributesEx;
external kernel32
name {$IFDEF UNICODE}'
GetFileAttributesExW'
{$ELSE}'
GetFileAttributesExA'
{$ENDIF};
function GetFileAttributesExA;
external kernel32
name '
GetFileAttributesExA';
function GetFileAttributesExW;
external kernel32
name '
GetFileAttributesExW';
Sowas ist auch immer ganz nett.
GetFileSize(const aFileName: string; NoException: Boolean=False): Int64;
Ausnahmen behandle ich gern auch als Exceptions.
Wenn die Datei nicht existiert, deren Datum ich wissen will, dann ist das eine Ausnahme.
Aber falls ich doch mal prüfen will und es mit erstmal egal ist, ob die Datei existiert, dann kann man so die
Exception deaktivieren, ohne ein Try-Except drummachen zu müssen.