我需要更改项目的工作目录,以便输出文件转到某个文件夹,而不是所有项目文件.
我正在使用
system("cd secretdir/");
system("ls");
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是当前项目目录中的文件列表,而不是"secretdir"文件.
我使用的是Mac OS X 10.6/Qt Creator 4.7 64位
谢谢!
您必须更改当前工作目录
此外,您应该考虑使用完整路径名保存输出文件,而不是更改工作目录.
您当前的代码将生成一个将更改其当前目录的子shell ./secretdir,然后继续执行exit()而不执行任何其他操作.
只有这样才能ls在另一个子shell中运行,其当前目录当然完全独立于您之前调用时所执行的操作system().
这可能就是你的问题所在.你在寻找chdir()函数吗?
chdir("secretdir");
// From now on, the current directory of the process is `./secretdir`.
system("ls"); // Will probably behave as expected.
Run Code Online (Sandbox Code Playgroud)