C ++系统mkdir与路径

时间:2015-07-24 23:16:36

标签: c++ path system mkdir

在这里遇到一点障碍。我正在尝试使用由正在使用的函数创建的变量目录名在另一个目录中创建一个目录。基本上我想将任何创建的帐户存储在名为accounts的目录中,该目录与其他所有帐户都是分开的。以下是我的功能:

system(("mkdir -p /home/user/Program/accounts"+accname).c_str());

我遇到的问题是它在程序中创建目录作为帐户(accname),而不是在accname为目录的帐户中。

accname = tim的示例目前看起来像是Program中的accountstim而不是帐户内的时间。

1 个答案:

答案 0 :(得分:1)

您正在传递-p标志,该标志将创建您尚未拥有的所有目录,因此您处于正确的轨道上。

您需要添加另一个斜杠才能获取新目录。如果没有这个额外的斜杠,字符串末尾的任何内容都会成为accounts目录的一部分,而不是新目录的名称:

system(("mkdir -p /home/user/Program/accounts/"+accname).c_str()); // note the slash after accounts!

这可以解决您的问题,但我建议不要使用system函数

编辑:使用mkdir仅适用于运行POSIX系统或其他提供mkdir功能的系统。如果你在Windows上,我不知道如何做到这一点。

建议使用mkdir系统调用。如果您只创建一个目录,则mkdir函数调用应该相对简单。如果您运行的是Linux,则可以阅读here