我在delphi2006中调用Copyfile函数将一个文件拷贝到另一个位置,然后删除原文件,总是删除不了,按步跟踪发现这时候原文件正在使用,哪位高手知道怎么处理,急用!!!

解决方案 »

  1.   

      Copy         *.Txt                 C:\Temp   那olddirectory   只要传入:c:\*.txt   即可,后面会自动删除   
      procedure   BackUp_File(OldDirectory:string;NewDirectory:string);   
      var   
            lpFileOp:   TSHFileOpStruct;   
            FromDir:PChar;   
            ToDir:PChar;   
      begin   
            GetMem(FromDir,   Length(OldDirectory)+2);   
            GetMem(ToDir,   Length(NewDirectory)+2);   
            Try   
                  FillChar(FromDir^,   Length(OldDirectory)+2,   0);   
                  FillChar(ToDir^,   Length(NewDirectory)+2,   0);   
                  StrCopy(FromDir,   PChar(OldDirectory));   
                  StrCopy(ToDir,   PChar(NewDirectory));   
                  lpFileop.wFunc:=FO_COPY;   
                  lpFileop.Wnd:=Application.Handle;   
                  lpFileop.pFrom:=FromDir;   
                  lpFileop.pTo:=ToDir;   
                  lpFileop.fFlags:=FOF_NOCONFIRMMKDIR   or   FOF_NOCONFIRMATION;//   or   FOF_NOERRORUI;   
                  lpFileop.fAnyOperationsAborted   :=   False;   
                  lpFileop.hNameMappings   :=   nil;   
                  lpFileop.lpszProgressTitle   :=   nil;   
                  SHFileOperation(lpFileop);   
            Finally  
                  deletefile(pchar(OldDirectory)); 
                  FreeMem(ToDir,Length(NewDirectory)+2);   
                  FreeMem(FromDir,Length(OldDirectory)+2);   
            end;   
      end;   
      
      

  2.   

    找到了,不是CopyFile的问题。