我想删除一个文件夹,这个文件夹里面含有文件和另外的文件夹,请问怎样才能把这个文件夹彻底的删除(包括里面的文件和文件夹),我用了shfileoperation      FData.Wnd:= Handle;
      FData.wFunc:= FO_DELETE;
      FData.pFrom:= PChar(ExtractFilePath(paramstr(0))+'TempF\');
      FData.fFlags:= FOF_ALLOWUNDO or FOF_NOCONFIRMMKDIR or FOF_MULTIDESTFILES or FOF_NOCONFIRMATION or FOF_FILESONLY;
      ShFileOperation(FData)总是提示“无法读源文件或磁盘”如果把“FData.pFrom:= PChar(ExtractFilePath(paramstr(0))+'TempF\');”改为“FData.pFrom:= PChar(ExtractFilePath(paramstr(0))+'TempF\'+'*.*');”在调试程序的时候(也就是在delphi的源文件里执行时),老是报“无法删除,文件正在使用”,但是我只是想删除TempF文件夹,它并没有使用。如果我把可执行文件和TempF文件夹复制到另外的地方执行,可以执行,但只能删除文件,里面的文件积却不能删除,各位该怎么解决

解决方案 »

  1.   

    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;
    测试成功
      

  2.   

    删除目录: 
    function DelDirectory(const Source:string): boolean;varfo: TSHFILEOPSTRUCT;beginFillChar(fo, SizeOf(fo), 0);with fo dobeginWnd := 0;wFunc := FO_DELETE;pFrom := PChar(source+#0);pTo := #0#0;fFlags := FOF_NOCONFIRMATION+FOF_SILENT;end;Result := (SHFileOperation(fo) = 0);end;
      

  3.   

    可以试试:FData.pFrom:= PChar(ExtractFilePath(application.exename))+'TempF\'+'*.*');