Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Dateigröße ermitteln, wie geht Ihr vor?

  Alt 26. Jan 2018, 14:10
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.
$2B or not $2B
  Mit Zitat antworten Zitat