我想检查要下载的文件是否存在。
我搜索了一个特定的命令,但我没有找到它,所以我想使用DownloadTemporaryFileSize
命令,如果出现问题会抛出异常。
假设文件不存在,我期望捕获异常错误时它将被隐藏,但为什么不是呢?
procedure InitializeWizard;
begin
try
FileSizeRetrieved := DownloadTemporaryFileSize('https://example.com/my_picture.jpg')
except
if....
//do something
//SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbCriticalError, MB_OK, IDOK);
end;
end;
MsgBox(IntToStr(FileSizeRetrieved), mbInformation, MB_OK);
end;
很难告诉你实际做的事情,甚至不贴的代码编译。以下代码的可编译版本证明,一般来说,您的方法是正确的。代码不会显示任何消息框,即使下载不存在。
function DownloadExists(Url: string): Boolean;
var
Size: Int64;
begin
try
Size := DownloadTemporaryFileSize(Url)
Log(Format('Size of %s download is %d', [Url, Size]));
Result := True;
except
Log(Format('Download %s does not exist: %s', [Url, GetExceptionMessage]));
Result := False;
end;
end;
注意,当在IDE中调试代码时,仍然会得到一个异常。但是正常执行时不会发生。