请教如何将一个目录完全移动到另外一个目录中,但是我不想使用复制后删除源目录的方法,
解决方案 »
- 在工地干了一上午的活
- skinadapter 使用问题
- ODAC与自增列的问题
- delphi7如何实现自动代码补齐
- Delphi代码 转C#代码 就两句话 (本人对Delphi 一点都不懂)
- 关于IdTCPServer的问题!
- 使用TIdftp控件,出现错误:error message:list index out of bounds(0)
- 如何在InputBox()的输入框中实现输入的字符显示为:*****(在线给分)
- 请问如何控制窗体右上角的最大化和最小化和关闭三个按钮,急!
- Delphi for linux (kylix)
- 如何实现单击comobox就会下拉
- 求DELPHI7版本的控件,类如下
文件的拷贝,对目录同样使用。只需要将FO_COPY改一下就可以做移动操作了。
uses ShellApi;function CopyFile(SourceName, TargetName: string): Boolean;
var
F: TShFileOpStruct;
begin
F.wnd := Handle;
F.wFunc := FO_COPY; {操作方式}
F.pFrom := PChar(SourceName + #0#0);
F.pTo := PChar(TargetName + #0#0);
F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
result := ShFileOperation(F) = 0;
end;
========================================================================
复制的例子,将FO_COPY改成FO_MOVE就成了移动了。
uses shellapi;function CopyFile(SourceName, TargetName: string): Boolean;
var
F: TShFileOpStruct;
begin
F.wnd := Form1.Handle;
F.wFunc := FO_COPY; {操作方式}
F.pFrom := PChar(SourceName + #0#0);
F.pTo := PChar(TargetName + #0#0);
F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
result := ShFileOperation(F) = 0;
end;
{ TForm1 }procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFile('E:\Temp', 'E:\Tmp');
end;
====================================================================
不要弹出确认覆盖对话框,可以,设置那个Flag,
F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION or FOF_NOCONFIRMATION;
而且,你可以隐藏掉进度条以及不允许取消等。只需要设置FLAG
可以禁止取消,应该怎么做?
设置参数FOF_SILENT,就不弹出拷贝界面了。也就没法取消了,对了,那个allowundo也
不设置了,否则可以按右键选择撤销复制
当移动'c:\Temp', 到'E:\Temp'时,当e本身有一个temp文件夹时,就会产生一个复件temp的文件夹,并不能把原来的temp真正覆盖掉,请问应该怎么办?