请问如何用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]

...全文
59 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过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;
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1161

社区成员

Delphi Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2008-07-29 08:57
社区公告
暂无公告