Can't delete directories



Hi,
I'm trying to delete the directories and files below a given
directory, i have no problem deleting the files, but when i try to
delete the directories, it complains, getlastError says that there
could be any application using those directories. Is there any way to
force those directories to be deleted?, the code is like follows:

procedure DeleteAllFilesInDir(DirName:string);
var
DirInfo: TSearchRec;
DirInfoDir: TSearchRec;
r : Integer;
begin
r := FindFirst(DirName+'\*.*', FaAnyfile, DirInfo);
while r = 0 do
begin
DeleteFile(pChar(DirName+'\' + DirInfo.Name));
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);

SetCurrentDir(Dirname);
r := FindFirst('*', faDirectory, DirInfoDir);
while r = 0 do begin
if (DirInfoDir.name<>'.') and (DirInfoDir.name<>'..') then
DeleteAllFilesInDir(pChar(DirName+'\' +
DirInfoDir.Name));
r := FindNext(DirInfoDir);
end;
if (not RemoveDir(dirname)) and (not m_avisado) then begin
ShowMessageFmt('TestDir removed failure with error
%d',[GetlastError]);
m_avisado := true;
end;
SysUtils.FindClose(DirInfoDir);
end;

Thanks in advance.
.