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