前被写了部分代码,我是死活看不懂,烦您帮注解以下,谢谢!
var
Ls:TStringList;
I,R:Integer;
FileName,DatePath:String;
begin
Ls:=TStringList.Create;
IDFTP1.List(LS);//?
R:=LS.Count-1;
LS.Clear;
Application.ProcessMessages;//?
for i:=0 to R do//?(为什么要写个循环)
begin
if IDFTP1.DirectoryListing.Items[I].ItemType<>DitDirectory then//DirectoryListing?DitDirectory?(为什么要加这个判断?)
begin
FileName:=IDFTP1.DirectoryListing.Items[I].FileName;
IDFTP1.Get(FileName,FileName,False,True);//?
DeleteFile(FileName);
End;
......

解决方案 »

  1.   

    IDFTP1.List(LS);
    得到 目录 LS下面的文件清单,因为它不是一个文件,是很对文件
    所以后面用个循环一个一个的取if IDFTP1.DirectoryListing.Items[I].ItemType<>DitDirectory then因为列表里面有文件和目录存在,所以要判断文件列表当前项的是不是目录,不是就下载该文件。
    是目录的话跳过。
      

  2.   

    楼主你为什么不跟踪一下代码呢?
    如果你是用的D6的话,带了这个IndyFTP的示例IDFTP1.List(LS);
    把读到的信息放到StringList中去,并显示出来IDFTP1.Get(FileName,FileName,False,True);
    这是下载文件,函数原型是
    procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean);
    第一个参数是FTP服务器上的文件,第二个参数是下载后存到本地的文件名,第三个参数是是否覆盖本地的同名文件
      

  3.   

    嗯,是这样的。用FTP,不是非常难吧。一点点看。