用C ++重命名目录

时间:2012-05-23 12:37:32

标签: c++ directory naming

我试图将目录重命名为与C ++中的测试中的现有目录相同的名称。我试过SHFileOperation。这实际上很有效。问题是我们有一个auotmated测试,并且由于某种原因在自动测试期间测试失败了。在手动运行时工作正常,但自动化不是那么多。我们认为可能会弹出一些对话框,即使我将标志设置为不允许任何标记。我也尝试重命名C ++函数。尝试将某些内容重命名为现有名称时,重命名似乎无效。

那么我可以使用其他方法吗?

3 个答案:

答案 0 :(得分:2)

如果这对您很重要,您可以尝试boost::filesystem具有便携性的优势。

namespace bfs=boost::filesystem;

std::string name("old_dir", "new_dir");

system::error_code ec = bfs::rename(name, new_name);

ec是可以引用here的错误代码对象,因此您可以检查错误情况。

答案 1 :(得分:1)

我肯定会寻求提升,但如果你不能使用它,你必须知道C ++没有内置支持这种文件操作。

你能做的最好就是使用C的重命名():

http://en.cppreference.com/w/c/io/rename

答案 2 :(得分:0)

您可以尝试MoveFile,它也适用于目录。 虽然我怀疑是否有任何API能够将某些内容重命名为已存在的名称。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365239(v=vs.85).aspx