解决方案 »

  1.   

    你这么写是“Winapi.Windows.FindClose”,不错才怪
    FindClose(vSearchRec)
    改为
    System.SysUtils.FindClose(SearchRec);
      

  2.   

    据说这样更简单,,,uses
      IOUtils;procedure TForm1.Button1Click(Sender: TObject);
    begin
      TDirectory.Delete('D:\TDDownload\fa', true);
    end;
      

  3.   

    @genispan  
    这个我也用过,如果不使用FindNext FindFirst遍历目录 之类的方法就可以删除干净的,但使用后一些目录就删除不了(P.S.一些有文件的目录,待程序关闭后 一些目录会被删除,其他的就删除不了了)
      

  4.   


    1、不是删除代码的问题,而是文件被占用。
    2、下面的代码,比“TDirectory.Delete”要强力,有些“TDirectory.Delete”无法删除的,下面的代码都可以删除uses
      Winapi.ShellAPI;function DelFileDir(const Path: string): Boolean;
    var
      Fo: TSHFileOpStruct;
    begin
      FillChar(Fo, SizeOf(Fo), 0);
      with Fo do
      begin
        Wnd := 0;
        wFunc := Fo_DELETE;
        pFrom := PChar(Path + #0);
        pTo := #0#0;
        fFlags := FOF_NOCONFIRMATION + FOF_SILENT;
      end;
      Result := (SHFileOperation(Fo) = 0);
    end;
      

  5.   

    可以直接 执行动态生成的外部bat(调用7z或rar的命令行) 来实现压缩
    都无须先拷贝再删除
      

  6.   


    我把压缩的注释掉后也删除不了,奇怪的是 我随便找个目录(压缩的目录是通过TDiretory.copy过来的,在C:\Temp),调用那个遍历的方法,却可以删除,哎一点头绪都没有了