怎样删除一个包含文件与子文件的文件夹

解决方案 »

  1.   

    我只写了一层,那自己使用
    function IsDirNotation(ADirName: String): Boolean;
      begin
        Result := (ADirName = '.') or (ADirName = '..');
      end;
    去遍历吧。
    {***************************************************************
     * 方 法 名  : g_fun_DeleteDirectoy
     * 编写目的   : 删除目录
     * 作    者  : 黄仁光
     * 参    数  : MapDir:要删除的目录
     * 结    果  : None
     * 编写日期   :2002年12月17日
     ****************************************************************}
    procedure g_fun_DeleteDirectoy(MapDir:String);
    var
      sr:TSearchRec;
      ReturnResult:Integer;
      FileName:String;
      Path:String;
    begin
      Path := MapDir+'\*.*';
      ReturnResult := -1;
      ReturnResult := FindFirst(Path,faAnyFile,sr);
      try
        while ReturnResult = 0 do
        begin
          FileName := MapDir+'\'+sr.Name;
          if FileExists(FileName) then
          begin
            DeleteFile(FileName);
          end;
          ReturnResult := FindNext(sr);
        end;
      finally
        FindClose(sr);
        RemoveDirectory(PChar(MapDir+'\'));
      end;
    end;