function DeletePath(mDirName: string): Boolean; { 返回删除指定目录是否成功 } var vSearchRec: TSearchRec; vPathName: string; K: Integer; begin Result := True; vPathName := mDirName + '\*.*'; K := FindFirst(vPathName, faAnyFile, vSearchRec); while K = 0 do begin if (vSearchRec.Attr and faDirectory > 0) and (Pos(vSearchRec.Name, '..') = 0) then begin FileSetAttr(mDirName + '\' + vSearchRec.Name, faDirectory); Result := DeletePath(mDirName + '\' + vSearchRec.Name); end else if Pos(vSearchRec.Name, '..') = 0 then begin FileSetAttr(mDirName + '\' + vSearchRec.Name, 0); Result := DeleteFile(PChar(mDirName + '\' + vSearchRec.Name)); end; if not Result then Break; K := FindNext(vSearchRec); end; FindClose(vSearchRec); Result := RemoveDir(mDirName); end;