Mal anders gefragt:
In welchen Situationen kann es dazu kommen, dass
GetFileAttributes(PChar(Directory)) = INVALID_FILE_ATTRIBUTES
und es
trotzdem um ein existierendes Verzeichnis handelt?
Ich hätte jetzt mal pauschal vermutet:
keine.
Also könnte der Code wie folgt lauten
Delphi-Quellcode:
function DirectoryExists(
const Directory:
string; FollowLink: Boolean = True): Boolean;
var
Code: Cardinal;
Handle: THandle;
LastError: Cardinal;
begin
Result := False;
Code := GetFileAttributes(PChar(Directory));
if Code <> INVALID_FILE_ATTRIBUTES
then
begin
[...]
end
else
begin
Result := False;
{
LastError := GetLastError;
Result := (LastError <> ERROR_FILE_NOT_FOUND) and
(LastError <> ERROR_PATH_NOT_FOUND) and
(LastError <> ERROR_INVALID_NAME);
}
end;
end;
ansonsten sollten die den Rückgabewert ändern auf
TDirectoryExistsResult = ( True, False, KnownByVulture );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)