IdFTP1.Username := 'myuser';
    IdFTP1.Password := 'mypass';
    IdFTP1.Host := '192.168.0.68';    IdFTP1.Connect;
    idftp1.ChangeDir('/');
    idftp1.List(nil);
    
    if not IdFTP1.DirectoryListing.Items[16].ItemType=ditDirectory then
    begin
       Name := IdFTP1.DirectoryListing.Items[16].FileName;
       if SaveDialog1.Execute then
       begin

        IdFTP1.Get(Name,'c:\1.rar', false);
       end;
    end;
可以下载文件并保存到'c:\1.rar',并且14578字节
为什么吧红色处代码去掉保存文件,文件大小为0字节,
我就是想不要另存对话框出现,并且还保存文件!
高人指点,指点啊!

解决方案 »

  1.   


     IdFTP1.Username := 'myuser'; 
        IdFTP1.Password := 'mypass'; 
        IdFTP1.Host := '192.168.0.68';     IdFTP1.Connect; 
        idftp1.ChangeDir('/'); 
        idftp1.List(nil); 
        
        if not IdFTP1.DirectoryListing.Items[16].ItemType=ditDirectory then 
        begin 
          Name := IdFTP1.DirectoryListing.Items[16].FileName;       IdFTP1.Get(Name,'c:\1.rar', True); 
     
        end; 
      

  2.   

    DirectoryListing这个是indy9使用的方法吧。
    Get参数,注意看。
      

  3.   

    lstream: TMemoryStream;IDHttp.Get(URL, Lstream);Memo.Line.LoadFromStream(lstream);大概如此
      

  4.   

    利用流
      MyStream:=TMemoryStream.Create;
      try
        try
          IFDownLoad := true;
          IdHTTP1.Get(sFileName,MyStream);
          MyStream.SaveToFile(dFileName);
        except//INDY控件一般要使用这种try..except结构.
          Result := false;
          Exit;
        end;
      finally
        MyStream.Free;
      end;
      

  5.   


    如果是 FTP站点怎么做呢?