请大侠们帮看一下:一下代码在win2k不能通过,而在win2003能运行,为什么??很急的~~~~,在线等》》》》》》》 ..............
    ....
    FillChar( frombuf, Sizeof(frombuf), 0 );
    FillChar( tobuf, Sizeof(tobuf), 0 );
    StrPCopy( frombuf, 'd:\test\*.*' );
   // StrPCopy( frombuf, SP );
    StrPCopy( tobuf, 'f:\lotus' );
    With OpStruc DO Begin
      Wnd:= Handle;
      wFunc:= FO_COPY;
      pFrom:= @frombuf;
      pTo:=@tobuf;
      fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
      fAnyOperationsAborted:= False;
      hNameMappings:= Nil;
      lpszProgressTitle:= Nil;
    end;
    ShFileOperation( OpStruc );
    .....
   提示:无法创建或替换指定路径!

解决方案 »

  1.   

    var
      p: TSHFileOpStruct;
    Begin
      With p DO Begin
        Wnd:= Handle;
        wFunc:= FO_COPY;
        pFrom:= 'd:\rsc'+#0#0;
        pTo:='d:\zz\qq'+#0#0;
        fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
        fAnyOperationsAborted:= False;
        hNameMappings:= Nil;
        lpszProgressTitle:= Nil;  end;
      ShFileOperation(p);
    end;
    估计是pTo的目录已存在。win2000下已测试通过
      

  2.   

    function CopyDirectory(const Source, Dest: string): boolean;varfo: TSHFILEOPSTRUCT;beginFillChar(fo, SizeOf(fo), 0);with fo dobeginWnd := 0;wFunc := FO_COPY;pFrom := PChar(source+#0);pTo := PChar(Dest+#0);fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ;end;Result := (SHFileOperation(fo) = 0);end;测试成功
      

  3.   

    谢了,已经解决!接分!是我打错了'd:\test\*.*',改为‘d:\test’就ok!