用WinExec('Deltree.com',NULL)好了。

解决方案 »

  1.   

    我自己写过一个这样的BCB函数,又或者你可以调用WINAPI函数SHFileOperation
      

  2.   

    我知道SHFileOperation,但不会用啊??
      

  3.   

    自己看一看帮助啊,SHFileOperation 主要是用到 SHFILEOPSTRUCT 结构  _SHFILEOPSTRUCTA = packed record
        Wnd: HWND;              显示操作状态的窗体的Handle
        wFunc: UINT;            想进行的操作      FO_COPY   拷贝
          FO_DELETE 删除(你需要的就是这个)
          FO_MOVE   移动
          FO_RENAME 重命名
        
        pFrom: PAnsiChar;       源,也就是文件或路径名,需要两个#0结尾
        pTo: PAnsiChar;         目的,拷贝、移动或者重命名时的目的,同样需要两个#0结尾
        fFlags: FILEOP_FLAGS;   标志位,这里参数很多,自己看一看吧。主要的:      FOF_ALLOWUNDO    可以恢复(删除操作时用这个标志即是删除到回收站)
          FOF_FILESONLY    在使用通配符(*、?)的时候只对文件操作
          FOF_SILENT       不显示进度对话框    fAnyOperationsAborted: BOOL; 设置为true的时候即使用户终止操作仍然返回true
        hNameMappings: Pointer;      FileName Mapping对象的句柄,一般不需要
        lpszProgressTitle: PAnsiChar; 进度对话框的标题,只在 fFlags 参数里设置了 FOF_SIMPLEPROGRESS时 有效
      end;比如,删除一个文件
    function TfFCMain.FileClean(FileName: string; UseRecycleBin: boolean = true): boolean;
    var
      SHFILEOPSTRUCT : _SHFILEOPSTRUCT;
    begin
      FillChar(SHFILEOPSTRUCT, Sizeof(SHFILEOPSTRUCT), #0);
      SHFILEOPSTRUCT.Wnd := Handle;
      SHFILEOPSTRUCT.wFunc := FO_DELETE;
      SHFILEOPSTRUCT.pFrom := PChar(FileName + #0);
      if UseRecycleBin then
        SHFILEOPSTRUCT.fFlags := FOF_ALLOWUNDO or FOF_FILESONLY or FOF_NOCONFIRMATION or FOF_SILENT
      else
        SHFILEOPSTRUCT.fFlags := FOF_FILESONLY or FOF_NOCONFIRMATION or FOF_SILENT;
      Result := SHFileOperation(SHFILEOPSTRUCT) = 0
    end;
      

  4.   

    听课,谢谢PoolD(池龙)的讲解,又得经验值了!