这似乎是DirectoryExists函数实现中的一个错误.
这是此功能的相关代码
function DirectoryExists(const Directory: string; FollowLink: Boolean = True): Boolean;
{$IFDEF MSWINDOWS}
var
Code: Cardinal;
Handle: THandle;
LastError: Cardinal;
begin
Result := False;
Code := GetFileAttributes(PChar(Directory));
if Code <> INVALID_FILE_ATTRIBUTES then
begin
...
//more code
...
end
else
begin
LastError := GetLastError;
Result := (LastError <> ERROR_FILE_NOT_FOUND) and
(LastError <> ERROR_PATH_NOT_FOUND) and
(LastError <> ERROR_INVALID_NAME) and
(LastError <> ERROR_BAD_NETPATH);
end;
end;
{$ENDIF MSWINDOWS}
Run Code Online (Sandbox Code Playgroud)
当您看到GetFileAttributes函数调用失败时,会将GetLastError方法的结果与一组可能的值进行比较.但在你的情况下,传递一个无效的路径将返回一个ERROR_BAD_PATHNAME(161)代码,所以该函数返回True.
| 归档时间: |
|
| 查看次数: |
1634 次 |
| 最近记录: |