gpt4 book ai didi

Delphi 和 IdFtp - 如何将所有文件上传到目录中

转载 作者:行者123 更新时间:2023-12-02 00:31:36 25 4
gpt4 key购买 nike

我的目录中有几个 xml 文件,但我只能逐个文件发送。我想发送该目录中的所有文件。我怎样才能做到这一点?

idftp1.Put('C:\MyDir\*.xml','/xml/*.xml');

最佳答案

Indy 目前还没有实现任何类型的多重 put 方法(FTP 协议(protocol)本身没有这样的功能)。您必须列出给定目录中的所有文件并调用 Put分别为每个文件。例如:

procedure GetFileList(const Folder, Filter: string; FileList: TStrings);
var
Search: TSearchRec;
begin
if FindFirst(Folder + Filter, faAnyfile, Search) = 0 then
try
FileList.BeginUpdate;
try
repeat
if (Search.Attr and faDirectory <> faDirectory) then
FileList.Add(Search.Name);
until
FindNext(Search) <> 0;
finally
FileList.EndUpdate;
end;
finally
FindClose(Search);
end;
end;

procedure MultiStor(FTP: TIdFTP; const Folder: string; const Filter: string = '*.*');
var
I: Integer;
FileList: TStrings;
begin
FileList := TStringList.Create;
try
GetFileList(Folder, Filter, FileList);
for I := 0 to FileList.Count-1 do
FTP.Put(Folder + FileList[I]);
finally
FileList.Free;
end;
end;

或类似的最新 Delphi 版本:

procedure MultiStor(FTP: TIdFTP; const Folder: string; const Filter: string = '*.*');
var
FileName: string;
begin
for FileName in TDirectory.GetFiles(Folder, Filter) do
FTP.Put(Folder + FileName);
end;

及其调用:

MultiStor(IdFTP1, 'C:\MyFolder\', '*.xml');

关于Delphi 和 IdFtp - 如何将所有文件上传到目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44486957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com