1

我想模拟一个特定的 UNIXrename()函数来重命名目录。它的 MAN 页指定:

oldpath 可以指定一个目录。在这种情况下,newpath 必须不存在,或者必须指定一个空目录。

我想模拟最后一种情况:

newpath 存在并且为空。

所以我创建了目录foo_dirbar_dir调用MoveFileEx()了以重命名foo_dirbar_dir. 这是没有错误管理的代码:

mkdir("foo_dir");
mkdir("bar_dir");
MoveFileEx("foo_dir", "bar_dir", MOVEFILE_REPLACE_EXISTING)

MoveFileEx()总是失败并出现错误 5(拒绝访问)。我尝试过使用其他标志MoveFileEx()但没有成功。

bar_dir如果它存在并且在调用之前为空,我必须手动删除MoveFileEx()吗?还是有其他解决方案?

我还没试过ReplaceFile()

4

0 回答 0