c++系统mkdir与路径

C++ system mkdir with path

本文关键字:路径 mkdir 系统 c++      更新时间:2023-10-16

这里遇到了点小问题。我试图使用由使用的函数创建的变量目录名称在另一个目录内创建一个目录。基本上,我想将任何创建的帐户存储在一个名为帐户的目录中,该目录与其他所有内容分开。下面是我的函数:

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

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

accname = tim的例子现在看起来像Program里面的accountstim,而不是account里面的tim。

您正在传递-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,你可以在这里阅读。