我想模拟一个特定的 UNIXrename()
函数来重命名目录。它的 MAN 页指定:
oldpath 可以指定一个目录。在这种情况下,newpath 必须不存在,或者必须指定一个空目录。
我想模拟最后一种情况:
newpath 存在并且为空。
所以我创建了目录foo_dir
并bar_dir
调用MoveFileEx()
了以重命名foo_dir
为bar_dir
. 这是没有错误管理的代码:
mkdir("foo_dir");
mkdir("bar_dir");
MoveFileEx("foo_dir", "bar_dir", MOVEFILE_REPLACE_EXISTING)
但MoveFileEx()
总是失败并出现错误 5(拒绝访问)。我尝试过使用其他标志MoveFileEx()
但没有成功。
bar_dir
如果它存在并且在调用之前为空,我必须手动删除MoveFileEx()
吗?还是有其他解决方案?
我还没试过ReplaceFile()
。