procedure Tmanifest.Btn_StorClick(Sender: TObject);
var
  Dir_Src,Dir_Bak:string;
  F_name:string;
  i:integer;
begin
  Dir_Src := 'E:\_libsrc\manifest\';
  Dir_Bak := 'E:\_databak\manifest\';
  if SearchFile(Dir_Src,'*.*') then
  begin
    for i := 0 to Flist.Count-1 do
    begin
      F_name := Flist.Strings[i];
      CopyFile(PChar(Dir_Src + F_name),PChar(Dir_Bak + F_name),False);
      deletefile(Dir_Src + F_name);
    end;
  end;
end;复制没问题,但却不会删除Dir_Src下的文件,为什么?

解决方案 »

  1.   

    可能是在搜索文件(SearchFile)完成后没有释放资源。比如用FindFirst和FindNext搜索完成后应该用FindClose释放资源。否则deletefile不能删除这些文件。—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    因為文件正在使用!(CopyFile在使用)!
    你可用GetLastError得到DeleteFile的錯誤信息! 如果你在CopyFile與DeleteFile之間加入Sleep(10000)(足夠的時間讓CopyFile完成后)試試,
      

  3.   

    CopyFile是异步方式调用的文件正在使用