读书人

递归错哪了

发布时间: 2013-04-21 21:18:07 作者: rapoo

递归哪里错了
indy ftp 删除目录内所有内容
procedure XXXXXXXXX.FTP_DeleteAllFiles(var idFTP : TIdFtp;RemoteDir,RootDir : string);
var
i:integer;
begin
IdFTP.ChangeDir(RemoteDir);
if SameText(RootDir,idFTP.RetrieveCurrentDir) then Exit;
for i:=0 to IdFTP.DirectoryListing.Count-1 do
begin
if IdFTP.DirectoryListing.Items[i].ItemType = ditFile then
IdFTP.Delete(IdFTP.DirectoryListing.Items[i].FileName);
if IdFTP.DirectoryListing.Items[i].ItemType = ditDirectory then
FTP_DeleteAllFiles(IdFTP,IdFTP.DirectoryListing.Items[i].FileName,RootDir);
end;
IdFTP.ChangeDirUp;
IdFTP.RemoveDir(RemoteDir);
FTP_DeleteAllFiles(IdFTP,idFTP.RetrieveCurrentDir,RootDir);
end; 递归 FTP
[解决办法]
IdFTP.ChangeDirUp;
IdFTP.RemoveDir(RemoteDir);
FTP_DeleteAllFiles(IdFTP,idFTP.RetrieveCurrentDir,RootDir);
end;

最后一条 FTP_DeleteAllFiles(IdFTP,idFTP.RetrieveCurrentDir,RootDir); 你删掉试试?
[解决办法]
for i:=0 to IdFTP.DirectoryListing.Count-1 do
改为
for i:=IdFTP.DirectoryListing.Count-1 downto 0 do
试一试?

读书人网 >.NET

热点推荐