Q&A

  • idFTP 질문입니다.. 여러파일을 한번에 upload하는 방법..
안녕하세요. 밑에 소스를 보시면 저는 파일을 하나하나 선택해서 업로드를 합니다.
그런데 이렇게 선택을 하지않고.. "c:\test\"폴더에 있는 모든 파일을 한번에 업로드를 하고싶습니다.
그렇게 하려는 이유는 업로드 하는 파일명이 매일 다를수도 있기에 이렇게 선택을 해서 업로드하는게아니라
해당 폴더의 전체파일을 업로드 하려고 합니다.
도움 부탁드립니다.

procedure TForm1.Button11Click(Sender: TObject);  

var Filename:String;

begin

   Filename:=FormatDateTime('yyyymmdd', now);

   IdFTP1.Host:=xxx.xxx.xxx.xxx;
   IdFTP1.Username:='test';
   IdFTP1.Password:='test';
   IdFTP1.Port:=21;

   try
      IdFTP1.Connect(True);

   except on E:Exception do
      Showmessage('접속실패! 잠시 후 다시 접속하세요');

   end;

   if IdFTP1.Connected then begin
   Showmessage('접속 정상');
   end;

  try
     // test Upload!
     IdFTP1.Put('c:\test\aaa_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\bbb_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\ccc_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\ddd_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\eee_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\fff_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\ggg_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\hhh_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\iii_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\jjj_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\kkk_'+Filename+'.txt','/test/test'+Filename+'.txt',true);
     IdFTP1.Put('c:\test\lll_'+Filename+'.txt','/test/test'+Filename+'.txt',true);


     Showmessage('파일 업로드 완료');
     IdFTP1.Disconnect;

   except
       IdFTP1.Disconnect;
       showmessage('업로드 에러!!');
   end;

end;
2  COMMENTS
  • Profile
    석주현 2008.11.07 22:23


    if (findFirst(FolderName+'\*.*',faAnyFile,Sr)) = 0 then
    repeat
    if (Sr.Name <> '.') and (Sr.Name <> '..') then
    begin
    if (SR.Attr and faDirectory) = faDirectory then
    begin
    FindFile(FolderName + '\'+SR.Name);
    end
    else
    IdFTP1.Put(Sr.Name,true);
    end;
    until FindNext(Sr) <> 0;
    FindClose(Sr);



    이런식으로 해서 디렉토리 내 모든 파일을 보내면 될 것 같습니다.
  • Profile
    별이^^ 2008.11.08 00:40
    안되네요...ㅠㅠ
    도저히 모르겠어요.ㅠㅠ