删除目录:function DelDirectory(const Source:string): boolean;
var
  fo: TSHFILEOPSTRUCT;
begin
  FillChar(fo, SizeOf(fo), 0);
  with fo do
  begin
    Wnd := 0;
    wFunc := FO_DELETE;
    pFrom := PChar(source+#0);
    pTo := #0#0;
    fFlags := FOF_NOCONFIRMATION+FOF_SILENT;
  end;
  Result := (SHFileOperation(fo) = 0);
end;

解决方案 »

  1.   

    procedure TForm1.deleteClick(Sender: TObject);
    //把d:\sybase目录下所有文件发送到回收站
    var
      sourcefile:STRING;
      lpfileop:TSHFILEOPSTRUCT;
    begin
      sourcefile:= 'd:\sybase\*.*'+#0#0;
      fillchar(lpfileop,sizeof(lpfileop),0);
      with lpfileop do
       begin
           wnd:=form1.handle;
           wFunc:=FO_DELETE;
           pFrom:=pchar(sourcefile);
           fflags:= FOF_ALLOWUNDO;
       end;
      if  SHFileoperation(lpfileop)<>NOERROR then
           if  lpfileop. FAnyOperationsAborted then
               showmessage('删除文件被终止')
           else
               showmessage('删除文件出错');
    end;
      

  2.   

    1用FindFirst、FindNext、FindClose来查找*.*,发现是faDirectory则再调用方法自身;否则DeleteFile;
    2作弊方法:直接用WinExec('deltree.exe -y c:\test\*.*',sw_hide);
      

  3.   

    下面是删除一个文件夹下所有文件的方法,要删除文件夹中的文件夹时,你可以将程序改一下。
    如果FindFirst时是faDirectory则再调用方法自身
    AnsiString SysPath ;//要删除的路径
                TSearchRec sr;
                if (FindFirst(SysPath+"\\*.*",faAnyFile,sr) == 0)
                {
                    do
                    {
                        DeleteFile(SysPath+"\\"+sr.Name) ;
                    }
                    while(FindNext(sr) == 0);
                    FindClose(sr);
                }
                if(!RemoveDir(SysPath)) //刚才这里写错了
                       Application->MessageBox("删除文件家失败,文件已删除","错误",MB_OK);
      

  4.   

    uses shellapi;{$R *.DFM} procedure TForm1.Button1Click(Sender: TObject);Var  T:TSHFileOpStruct;  P:String;begin  P:='d:\address';//这里改成你要删除的任意目录名  With T do  Begin  Wnd:=0;  wFunc:=FO_DELETE;  pFrom:=Pchar(P);  pTo:=nil;  fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息  hNameMappings:=nil;  lpszProgressTitle:='正在删除文件夹';  fAnyOperationsAborted:=False;  End;  SHFileOperation(T);end; 
      

  5.   

    //uses SHELLAPI;
        function MyDelTree(SourceName:String): Boolean;
        var
          F:TShFileOpStruct;
        begin
          F.wnd:=0;
          F.wFunc:=FO_DELETE;
          F.pFrom:=PChar(SourceName+#0#0);
          F.pTo:=PChar(''+#0#0);
          F.fFlags:=FOF_SILENT or FOF_NOCONFIRMATION;
          result:= ShFileOperation(F)=0;
        end;