procedure FTP_DeleteAllFiles( var idFTP: TIdFtp; RemoteDir, RootDir: string);
type
TFtpDir = record
FileName: string;
ItemType: TIdDirItemType;
end ;
var
i, DirCount: integer;
ftpDir: array of TFtpDir;
begin
if RootDir = ' / ' then exit;
if Pos(RootDir, RemoteDir) = 0 then exit;
idFTP.ChangeDir(RemoteDir);
idFTP.List( nil );
DirCount : = idFTP.DirectoryListing.Count;
SetLength(ftpDir, DirCount);
for i : = 0 to dirCount - 1 do
begin
ftpDir[i].FileName : = idftp.DirectoryListing[i].FileName;
ftpDir[i].ItemType : = idftp.DirectoryListing[i].ItemType;
end ;
for i : = 0 to DirCount - 1 do
begin
if (ftpDir[i].ItemType = ditDirectory) and (ftpDir[i].FileName <> ' . ' ) and (ftpDir[i].FileName <> ' .. ' ) then
FTP_DeleteAllFiles(idFTP, RemoteDir + ' / ' + ftpDir[i].FileName, RootDir)
else if (ftpDir[i].ItemType = ditFile) then
idFTP.Delete(ftpDir[i].FileName);
end ;
idFTP.ChangeDirUp;
idFTP.RemoveDir(RemoteDir);
end ;
IDFTP删除整个目录
最新推荐文章于 2021-08-03 02:24:00 发布