var
fs: TFileStream;iFileSize:integer;
begin
  fs := TFileStream.Create('C:\测试.ISO', fmOpenRead);
  IdFTP := TIdFTP.Create(nil);
  IdFTP.Host := '192.168.2.230';
  IdFTP.Port := 21;
  IdFTP.Username := 'admin';
  IdFTP.Password := '123456';
  IdFTP.Connect();
  iFileSize := IdFTP.Size('test.cdr');  if iFileSize = -1 then //文件不存在
  begin
    idftp.Put(fs,'test.cdr');
  end
  else if fs.Size <= iFileSize then
  begin
    //文件已经存在
  end
  else
  begin //文件不完整,断点续传
    fs.Position := iFileSize;
    IdFTP.Put(fs, 'test.cdr', true);//最后一个参数就是打开Append,续传方式
  end;
end;这个代码是网上找的   说是设置filestream的position就可以实现断点续传
但是设置之后,确实是续传了,不过是把整个文件续传了
比如文件大小是100K   第一次传了50K   第二次传的时候从服务器文件的50K开始,一共续传100K,最后就成150K了我估计是那个人没有做测试,现在的思路是先把filestream里的文件流从iFileSize处开始复制一份到结束,然后建立一个新的filestream2,把filestream2续传上去就好了目前的问题有
filestream对象会把文件内容加载到内存中吗,对filestream操作是操作硬盘还是内存
还有就是如何将filestream的一部分复制到filestrem2中
复制时需要设置缓存吗,如何设置,复制一个2G左右的文件需要多久