如何使用 Indy Delphi 组件设置 ftp.get 的下载位置
How to set download location for ftp.get with Indy Delphi component
我可以使用以下方法从我的 ftp 服务器成功下载文件:
ftp.get(chosenFile,chosenFile);
其中 chosenFile 只是一个包含文件名的字符串。
然而,这些被下载到我的 Delphi 项目的 Debug 文件夹中,所以...
1.) 如何指定文件应下载到的位置。
2.) 如何让TOpenDialog下载后自动打开到那个位置?
您可以在目标文件中指定完整路径,以指定确切位置。您可以指定与打开对话框的初始目录相同的路径。
您还可以使用 SetCurrentDir
程序设置工作目录。
或者,您可以使用 ftp.Get(chosenFile, Stream)
,其中 Stream
可以是任何 TStream
后代的实例,例如 TFileStream
(打开以写入您想要的目标文件),甚至 TMemoryStream
,如果您根本不需要将文件放在磁盘上。
事实上,接受目标文件名的 Get 重载将根据确切的参数创建一个 TIdFileStream,并调用另一个重载。
[已解决] 我解决了自己的问题,不敢相信这么简单:
1.Specify 文件应下载到的目录作为第二个参数:ftp.get(chosenFile,'C:\Temp\'+chosenFile);
2.Set TOpenDialog的初始目录如下: dlg.InitialDir := 'C:\Temp';
我可以使用以下方法从我的 ftp 服务器成功下载文件:
ftp.get(chosenFile,chosenFile);
其中 chosenFile 只是一个包含文件名的字符串。
然而,这些被下载到我的 Delphi 项目的 Debug 文件夹中,所以...
1.) 如何指定文件应下载到的位置。 2.) 如何让TOpenDialog下载后自动打开到那个位置?
您可以在目标文件中指定完整路径,以指定确切位置。您可以指定与打开对话框的初始目录相同的路径。
您还可以使用 SetCurrentDir
程序设置工作目录。
或者,您可以使用 ftp.Get(chosenFile, Stream)
,其中 Stream
可以是任何 TStream
后代的实例,例如 TFileStream
(打开以写入您想要的目标文件),甚至 TMemoryStream
,如果您根本不需要将文件放在磁盘上。
事实上,接受目标文件名的 Get 重载将根据确切的参数创建一个 TIdFileStream,并调用另一个重载。
[已解决] 我解决了自己的问题,不敢相信这么简单: 1.Specify 文件应下载到的目录作为第二个参数:ftp.get(chosenFile,'C:\Temp\'+chosenFile); 2.Set TOpenDialog的初始目录如下: dlg.InitialDir := 'C:\Temp';