通过调用Win 95系统外壳来完成,需要在USES子句中添加SHELLAPI单元。这种方法与Win 95下文件拷贝的方式完全一样,也会自动出现“正在拷贝...”的提示。如果目标文件已经存在,函数可以根据操作标志位自动生成多份复件。
改变wFunc的值,则可以完成删除、更名、放到回收站等功能。我认为这是最好的一种方法。
procedure TForm1.Button5Click(Sender: TObject);
var
F:TShFileOpStruct;
begin
F.wnd:=Handle;
F.wFunc:=FO—COPY; {操作方式}
F.pFrom:=′C:/DEMO.DAT′;
F.pTo:=′F:/TEST.DAT′;
F.fFlags:=FOF—ALLOWUNDO OR FOF—RENAMEONCOLLISION; {操作选项}
if ShFileOperation(F)<>0 then
ShowMessage(′文件拷贝失败!′);
end;