在DELPHI中,如何在NT、2000中删除目录树(目录中包含子目录及文件)

解决方案 »

  1.   

    Uses ShellAPI;//直接删除,不放入回收站
    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;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DelDirectory('c:\to_del');
    end;
      

  2.   

    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;