【发布时间】:2023-03-13 04:27:02
【问题描述】:
我正在尝试使用 TIdFTP.Get(版本 10)从我拥有帐户的远程服务器下载文件 (ssleay32.dll)。
该文件确实存在于服务器上的文件夹中,我可以使用 TIdFTP 连接 OK。但是,无论我如何引用文件TIdFTP.Get 的路径,都会出现错误,无法打开:没有这样的文件或目录。
如果我尝试先将目录更改为文件所在的目录,然后只使用文件名,我在尝试更改目录时会遇到同样的错误。
引用文件以便正确下载的正确方法是什么?
关于信息,当我使用 Filezilla 和 TIdFTP 使用的相同凭据登录服务器时,Filezilla 似乎将路径显示为 /MAMbase。我尝试过使用 /MAMbase、../MAMbase、./MAMbase、/MAMbase/ 和其他变体,但均未成功。
我正在使用的代码,在设置主机、帖子、用户名和密码的连接参数后如下。使用连接中的路径并仅使用文件名获取或使用完整路径获取与我使用的任何路径格式相同的错误。
if (not fileexists(pathToCommonFiles + 'libeay32.dll')) or (not fileexists(pathToCommonFiles + 'ssleay32.dll')) then
begin
try
try
IdFTP1.Connect ;
// IdFTP1.ChangeDir('MAMbase/');
// IdFTP1.Get('ssleay32.dll', pathToCommonFiles + 'libeay32.dll',true);
IdFTP1.Get('./MAMbase/ssleay32.dll',pathToCommonFiles + 'ssleay32.dll',true);
except on E: Exception do
showmessage ( 'Could not make ftp connection for SSL files' +slinebreak +
'Exception class name = '+E.ClassName+ slinebreak
+ 'Exception message = '+E.Message);
end;
finally
IdFTP1.quit ;
end;
end;
我看过here 和here 的类似问题,但没有进一步的进展。
(顺便说一句 pathToCommonFiles 包含一个斜杠并且它存在)
【问题讨论】: