我需要一个函数:DeletePath(mDirName: string),作用是可以删除指定目录下的所有文件和子目录文件,但是这个指定目录不能删除.比如:C:\TEMP,可以删除C:\TEMP的所有文件和文件夹;但是C:\TEMP目录仍然存在。只不过里面是空的,一无所有,呵呵……我在网上找到了一个函数,但是它把这个目录本身也删掉了,特请教各位大虾,不胜感谢!
下面是我在网上找到的函数:
================================================================================
//函数:删除指定文件夹及其中的文件和其子目录
{
function TFormMain.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;
}