Как установить местоположение загрузки для ftp.get с компонентом Indy Delphi - PullRequest
2 голосов
/ 22 марта 2019

Я могу успешно загрузить файл с моего ftp-сервера, используя:

ftp.get (chosenFile, chosenFile);

Где selectedFile - это просто строка с именем файла.

Однако они загружаются в папку Debug моего проекта Delphi, поэтому ...

1.) Как указать, куда следует загружать файлы. 2.) Как сделать так, чтобы TOpenDialog автоматически открывался в этом месте после загрузки?

Ответы [ 2 ]

3 голосов
/ 22 марта 2019

Вы можете указать полный путь в файле назначения, чтобы указать точное местоположение. Вы можете указать тот же путь, что и начальный каталог открытого диалога.

Вы также можете установить рабочий каталог, используя процедуру SetCurrentDir.

В качестве альтернативы, вы можете использовать ftp.Get(chosenFile, Stream), где Stream может быть экземпляром любого потомка TStream, например TFileStream (открытый для записи в нужный файл) или даже TMemoryStream, если вам вообще не нужен файл на диске.

Фактически, перегрузка Get, которая принимает имя файла назначения, просто создаст TIdFileStream в зависимости от точных параметров и вызовет другую перегрузку.

1 голос
/ 22 марта 2019

[решено] Я решил собственную проблему, не могу поверить, что это было так просто: 1.В качестве второго параметра укажите директорию, куда должен быть загружен файл: ftp.get (selectedFile, 'C: \ Temp \' + selectedFile); 2. Установите начальный каталог TOpenDialog следующим образом: dlg.InitialDir: = 'C: \ Temp';

...