将子目录中的文件列表导入数组 我正在做一个程序,它要求我在多个点上把我的C++项目的子目录的内容导入到向量< /代码>中。假设项目目录名为root\,我要扫描的目录是root\userFiles。此文件夹仅包含其他文件,不包含其他子文件夹

将子目录中的文件列表导入数组 我正在做一个程序,它要求我在多个点上把我的C++项目的子目录的内容导入到向量< /代码>中。假设项目目录名为root\,我要扫描的目录是root\userFiles。此文件夹仅包含其他文件,不包含其他子文件夹,c++,filesystems,C++,Filesystems,然而诀窍是我受到限制,我不能使用任何boost、dirent.h头文件。只是基本的 我能想到的一个解决方案是使用命令system(“dir/b*>userFiles/fileList.txt”)然后通过读取该文件并将其导入向量来过滤结果 我的问题是如何将“cd”保存到该文件夹中,在该文件夹中运行该命令,然后退出到根文件夹 我已经尝试使用系统(“chdir userFiles/”命令,但是我仍然得到根文件夹中的所有文件 任何帮助都将不胜感激。所以我想出了一个更简单的方法 int main() {

然而诀窍是我受到限制,我不能使用任何boost、dirent.h头文件。只是基本的

我能想到的一个解决方案是使用命令
system(“dir/b*>userFiles/fileList.txt”)
然后通过读取该文件并将其导入向量来过滤结果

我的问题是如何将“cd”保存到该文件夹中,在该文件夹中运行该命令,然后退出到根文件夹

我已经尝试使用
系统(“chdir userFiles/”
命令,但是我仍然得到根文件夹中的所有文件


任何帮助都将不胜感激。

所以我想出了一个更简单的方法

int main()
{
system("chdir userFiles && dir /b * > fileList.txt");
}

我正在使用
&&
操作符将多个命令字符串连接在一起。因为我只使用了
system()
函数,一旦所有这些命令都成为同一进程的一部分。

如果您使用
chdir
(或者
\u chdir
它可能在Windows下)首先移动到另一个目录,然后运行
system
,它将按照您的预期工作。除此之外,还有很多问题都有很好的答案,这些问题描述了您是如何在这里获得目录的文件名的
chdir
似乎不起作用。我得到了整个根文件夹中所有文件的列表。至于答案,大多数都要求我使用某种我无法使用的第三方头文件。我假设您使用的是“windows”,在这种情况下,您应该能够使用
对吗?如果您不能使用
windows.h
,那么我将使用fstream构建一个批处理文件,其中包含
“您想要的cd目录\ndir/b”
。就像这样:我不能使用
windows.h
哈哈。幸运的是,我已经找到了在同一个系统命令中运行所有这些命令的方法
chdir用户文件&&dir/b*>fileList.txt&&chdir../
。工作起来很有魅力。非常感谢您的帮助:)执行
chdir…
“new”目录没有意义-仅当shell进程仍处于活动状态时,“new”目录才处于活动状态,因此当您完成命令时,父进程仍将保留其当前的工作目录。