我知道removedir只可以删除空目录,但是我在删除目录之前已经删除了目录下面的所有文件,但是我还是不可以删除这个目录!!为什么阿,请大家帮忙啊!!

解决方案 »

  1.   

    var
       lsPath: string;
       FileOp: TSHFileOpStruct;
    begin
          lsPath := 'c:\temp\';
          //删除临时文件
          with FileOp do begin
             Wnd := 0;
             wFunc := FO_DELETE;
             pFrom := PChar(lsPath  + '*.*' + #0);     //取目录,与isFaq没有实际关系
             pTo := nil;
             fFlags := FOF_SILENT + FOF_NOCONFIRMATION ;
             fAnyOperationsAborted := False;
             hNameMappings := nil;
             lpszProgressTitle := nil;
          end;
          SHFileOperation(FileOp);
         
          RemoveDir(lsPath );
    end;
      

  2.   

    function DelectDirectory(Const ADirName:String):Boolean;
    var
      fo: TSHFILEOPSTRUCT;
    begin
      FillChar(fo, SizeOf(fo), 0);
      with fo do
      begin
        Wnd := 0;
        wFunc := FO_DELETE;
        pFrom := PChar(ADirName+#0);
        pTo := #0#0;
        fFlags := FOF_NOCONFIRMATION+FOF_SILENT;
      end;
      Result := (SHFileOperation(fo) = 0);
    end;
    我上面的这个函数是删除文件夹及文件夹下的所有文件,请你参考,我经过测试过的
      

  3.   

    注意参数ADirName 形式如C:\temp,后面不要带\