|
{删除整个ftp目录,包括下面的文件,
RootDir = 要删除的根目录,一般情况下 RemoteDir 与 RootDir 相等}
procedure FTP_DeleteAllFiles(var idFTP : TIdFtp;RemoteDir,RootDir : string);
label Files;
var
i,DirCount : integer;
Temp : string;
begin
idFTP.ChangeDir(RemoteDir);
if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Exit;
Files :
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count ;
while DirCount = 0 do
begin
Temp := idFTP.RetrieveCurrentDir;
idFTP.ChangeDirUp;
idFTP.RemoveDir(Temp);
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count ;
for i := 0 to DirCount - 1 do
if idFTP.DirectoryListing[i].FileName = RootDir then Exit;
end;
for i := 0 to DirCount - 1 do
begin
if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Break ;
if idFTP.DirectoryListing[i].ItemType = ditDirectory then
begin
FTP_DeleteAllFiles(idFTP,idFTP.DirectoryListing[i].FileName,RootDir);
end else begin
idFTP.Delete(idFTP.DirectoryListing[i].FileName);
Form1.lb_num.Caption := IntToStr(StrToInt(Form1.lb_num.Caption) + 1);
Form1.lb_num.Update;
goto Files ;
end;
end;
end;
procedure TForm1.Btt_DownLoadDirClick(Sender: TObject);
begin
IdFTP1.Connect(true,-1);
if IdFTP1.Connected then
begin
IdFTP1.ChangeDir(''''bigimage'''');
FTP_DownloadDir(IdFTP1,''''1002.1002.1002'''',''''g:\ftpdir\'''');
end;
IdFTP1.Disconnect ;
end;
procedure TForm1.Btt_DeleteDirClick(Sender: TObject);
begin
IdFTP1.Connect(true,-1);
if IdFTP1.Connected then
begin
IdFTP1.ChangeDir(''''bigimage'''');
FTP_DeleteAllFiles(IdFTP1,''''1002.1002.1002'''',''''1002.1002.1002'''');
end;
IdFTP1.Disconnect ;
end;
end.
运行环境 win2000 advanced server + delphi7.0 + iis6.0
上一页 [1] [2] [聊天工具]如何用MSN Messenger发短信__天极Yesky [常用软件]如何用WinWord做表格? [VB.NET程序]如何用VB.Net创建一个三层的数据库应用程序(转贴) [VB.NET程序]如何用VB获得机器的MAC地址 [VB.NET程序]如何用VB获得Windows各类系统目录 [VB.NET程序]如何用VB6写COM组件(二) [Delphi程序]如何用Delphi制作录音程序 [Delphi程序]如何用Tprinter设计BCB操作数据库程序中的报表 [VB.NET程序]如何用VB实现QBASIC中的data数据的read [VB.NET程序]如何用vb的winsocket解决udp文件传送丢包的问题
|