up

解决方案 »

  1.   

    procedure _DelTree(ASourceDir:String);
    var
    FileRec:TSearchrec;
    Sour:String;
    begin
      Sour:=ASourceDir;
      if Sour[Length(Sour)]<>'\' then Sour := Sour + '\';  if not DirectoryExists(ASourceDir) then
         begin
           ShowMessage('來源目錄不存在!!');
           exit;
         end;  if FindFirst(Sour+'*.*',faAnyfile,FileRec) = 0 then
        repeat
          //if (FileRec.Attr = faDirectory) then
          if ((FileRec.Attr and faDirectory) <> 0) then
             begin
               if (FileRec.Name<>'.') and (FileRec.Name<>'..') then
                  begin
                    _DelTree(Sour+FileRec.Name);                FileSetAttr(Sour+FileRec.Name,faArchive);
                    RemoveDir(Sour+FileRec.Name);
                  end;
             end
          else
             begin
               FileSetAttr(Sour+FileRec.Name,faArchive);
               deletefile(PChar(Sour+FileRec.Name));
             end;
        until FindNext(FileRec)<>0;  SysUtils.FindClose(FileRec);  FileSetAttr(Sour,faArchive);
      RemoveDir(Sour);end;