//dir为要删除的目录,rootdir为dir所在的目录,二者都为具体路径
procedure delltree(dir,rootdir:string);
 var olddir:string;
     LS: TStringList;
   FileCount:Integer;
begin
      LS := TStringList.Create;
     ftpmainform.FTPClient.ChangeDir(Dir);
     olddir:=ftpmainform.FTPClient.RetrieveCurrentDir;
     ftpmainform.FTPClient.List(LS);
     if ftpmainform.FTPClient.RetrieveCurrentDir=RootDir then Exit;  //出口  if ls.Count=2 then        //目录为空
               begin
               ftpmainform.FTPClient.ChangeDirUp;
                ftpmainform.FTPClient.removedir(olddir);
               delltree(ftpmainform.FTPClient.RetrieveCurrentDir,rootdir);
               end
  else
    begin
           for FileCount:=0 to LS.Count - 1 do
           begin
               if (ftpmainform.FTPClient.DirectoryListing.Items[FileCount].ItemType = ditDirectory)
                     then
                     if(ftpmainform.FTPClient.DirectoryListing.Items[FileCount].FileName<>'.')and(ftpmainform.FTPClient.DirectoryListing.Items[FileCount].FileName<>'..')
                     then
                   delltree(ftpmainform.FTPClient.RetrieveCurrentDir+'/'+ftpmainform.FTPClient.DirectoryListing.Items[FileCount].FileName,rootdir)              else
                 ftpmainform.FTPClient.Delete(ftpmainform.FTPClient.RetrieveCurrentDir+'/'+ftpmainform.FTPClient.DirectoryListing.Items[FileCount].FileName);
            end;
     delltree(ftpmainform.FTPClient.RetrieveCurrentDir,rootdir);
    end;
end;
//小弟不知道错在什么地方了,就是不能完全删除,有错误,请给小弟指点一下!