안녕하세요. 밑에 소스를 보시면 저는 파일을 하나하나 선택해서 업로드를 합니다.
그런데 이렇게 선택을 하지않고.. "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;
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);
이런식으로 해서 디렉토리 내 모든 파일을 보내면 될 것 같습니다.