其实网上已经有很多的例子了,不过对于和我一样的初学者来说难免会遇到问题,我试过win32Api函数,也试过用removeDirectory,但都删不掉指定目录,分析了一下,很显然,是这些函数只是单纯的删除空文件夹,非空文件夹删不了的。也不知是不是我用的不对,总之用了下面这个函数挺灵的,帖出来大家分享下。

 1function TMainForm.DeleteDirectory(NowPath: string): Boolean; //删除整个目录
 2var
 3  search: TSearchRec;
 4  ret: integer;
 5  key: string;
 6begin
 7  if NowPath[Length(NowPath)] <> '\' then
 8    NowPath := NowPath + '\';
 9  key := Nowpath + '*.*';
10  ret := findFirst(key, faanyfile, search);
11  while ret = 0 do begin
12    if ((search.Attr and fadirectory) = faDirectory)
13      then begin
14      if (Search.Name <> '.') and (Search.name <> '..') then
15        DeleteDirectory(NowPath + Search.name);
16    end else begin
17      if ((search.attr and fadirectory) <> fadirectory) then begin
18        deletefile(NowPath + search.name);
19      end;
20    end;
21    ret := FindNext(search);
22  end;
23  findClose(search);
24  removedir(NowPath);
25  result := True;
26end;
27