我写的如下:但有错,不知道哪错了?要如何改,谢谢!procedure FileRename(AHandle:THandle;FromName,ToName:string);
var
  SHFileOpStruct:TSHFileOpStruct;
begin
  with SHFileOpStruct do
  begin
    Wnd:=AHandle;
    wFunc:=FO_RENAME;
    pFrom:=pchar(FromName);
    pTo:=pchar(ToName);
    fFlags:=FOF_NOCONFIRMATION;    fAnyOperationsAborted:=false;
    hNameMappings:=nil;
    lpszProgressTitle:=nil;    if SHFileOperation(SHFileOpStruct)<>0 then
      RaiseLastWin32Error;
  end;
end;

解决方案 »

  1.   

    procedure FileRename(AHandle:THandle;FromName,ToName:string);
    var
      SHFileOpStruct:TSHFileOpStruct;
    begin
      with SHFileOpStruct do
      begin
        Wnd:=AHandle;
        wFunc:=FO_RENAME;
        pFrom:=pchar(FromName);
        pTo:=pchar(ToName);
        fFlags:=FOF_NOCONFIRMATION;    fAnyOperationsAborted:=false;
        hNameMappings:=nil;
        lpszProgressTitle:=nil;
      end;  if SHFileOperation(SHFileOpStruct)<>0 then
          RaiseLastWin32Error;end;
      

  2.   

    程序没错,但是注意:
    1、要uses ShellAPI
    2、FromName,ToName要传送全名,如:
    FileRename(handle,'g:\档.txt','g:\档11.txt');
    或者
    FileRename(0,'g:\档.txt','g:\档11.txt');—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————