请问如何用movefileEX移动子目录到上级目录中?不能使用SHFileOperation函数,只请教MoveFileEx的实现方法.

dejoy 2008-07-29 08:57:03
简单的示例如下,我有如下目录结构:
C:.
├─rtl
│ ├─Common
│ ├─Sys
│ └─Win
└─rtl2007
└─rtl
├─Common
├─Sys
└─Win
要把rtl2007下的rtl移动到rtl2007的父目录下,覆盖根目录下的rtl. 只能使用MoveFileEx,不能使用 SHFileOperation函数,只请教MoveFileEx的实现方法.
以下是我的代码,生成的EXE是在rtl2007下执行,不知为什么运行没有效果.

cc.iss,2008-7-29 20:56:28
[font=Courier New]procedure _FixedCopyRTL2007;
var
dFlags: [color=#802020]DWORD
;
sc,s1,s2:string;
begin
dFlags := MOVEFILE_COPY_ALLOWED + MOVEFILE_REPLACE_EXISTING;
sc := GetCurrentDir;
s1 := sc + '\'+'rtl';
s2 := sc + '\'+'..\';

MoveFileEx(PChar(s1), PChar(s2), dFlags);
end;
[/color][/font]

...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dejoy 2008-07-31
  • 打赏
  • 举报
回复
to iamyg,按你的方法试还是不行啊
iamyg 2008-07-30
  • 打赏
  • 举报
回复
MOVEFILE_REPLACE_EXISTING If a file named lpNewFileName exists, the function replaces its contents with the contents of the lpExistingFileName file.
This value cannot be used if lpNewFileName or lpExistingFileName names a directory.

你去掉一个dflags看看可以么?
如果是路径的话,这个值MOVEFILE_REPLACE_EXISTING不能使用
dejoy 2008-07-29
  • 打赏
  • 举报
回复
代码有问题,重新复制:
procedure _FixedCopyRTL2007;
var
dFlags: DWORD;
sc,s1,s2:string;
begin
dFlags := MOVEFILE_COPY_ALLOWED + MOVEFILE_REPLACE_EXISTING;
sc := GetCurrentDir;
s1 := sc + '\'+'rtl';
s2 := sc + '\'+'..\';

MoveFileEx(PChar(s1), PChar(s2), dFlags);
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧