如何删除一目录以及目录里面的文件(是否得先判断此目录是否存在!)
请指教!!!

解决方案 »

  1.   

    最BT的用法:
    WinExec('CMD.Exe /k deltree.exe -y c:\temp',sw_hide);
      

  2.   

    用API的SHFileOperation
    uses shellapi
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    var
     sf: TSHFileOpStruct;
    begin
    sf.Wnd:=handle;
    sf.pFrom:='d:\temp\temp';
    sf.fFlags:= FOF_NOCONFIRMATION;
    sf.hNameMappings := nil;
    sf.lpszProgressTitle := nil;
    sf.pTo := nil;
    sf.wFunc := FO_DELETE;
    if SHFileOperation(sf)=0 then
       ShowMessage('目录成功删除!');
    end;
      

  3.   

    1楼好厉害的方法。
    我这样做
    遍历文件夹,一一删除文件,删除目录。
    -------
    判断目录存在
    directoryexists uses SysUtils;
      

  4.   

    procedure TForm1.FindFiles(Apath:string);
    var
        FSearchRec,DSearchRec:TSearchRec;
        FindResult:integer;
    begin
        if apath[length(apath)]<>'\' then apath:=apath+'\';
        FindResult:=FindFirst(Apath+'*.*',faAnyFile+faHidden+faSysFile+faReadOnly,FSearchRec);
        try
           while FindResult=0 do
           begin
               //这里写找到文件后的操作
               FindResult:=FindNext(FSearchRec);
           end;
           FindResult:=FindFirst(Apath+'*.*',faDirectory,DSearchRec );
           while FindResult =0 do
           begin
               if ((DSearchRec.Attr and fadirectory)=fadirectory) and (leftstr(DSearchRec.Name,1)<>'.') then
                   FindFiles(Apath+DSearchRec.Name);
               FindResult:=FindNext(DSearchRec );
           end;
        finally
           FindClose(FSearchRec);
        end;
    end;