gpt4 book ai didi

c++ - QT 如何使用 QDirIterator 访问子目录中的特定目录?

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:36 25 4
gpt4 key购买 nike

我有数千个文件要处理,目录结构如下:

YYYY_MM_DD
XXX
XXX
XXX
Target
.hdr files
XXX
XXX
more .hdr files but do not want to process
YYYY_MM_DD
XXX
XXX
XXX
Target
.hdr files
XXX
XXX
more .hdr files but do not want to process

我有三个月的数据要处理,我需要进入 Target 文件夹,而且只是 Target 文件夹。它们包含我们需要查看的文件,其他一些文件夹也包含我们不需要查看的 .hdr 文件。

起初,我使用了一个QDirIterator,例如:

QDirIterator it(inputDir, QStringList() << "*.hdr", QDir::Files, QDirIterator::Subdirectories);

然而,在运行我的程序时,我意识到这也将获取其他 .hdr 文件,我不需要处理这些文件。这是我编写的可以找到所有 .hdr 文件的代码:

QDirIterator it(inputDir, QStringList() << "*.hdr", QDir::Files, QDirIterator::Subdirectories);
std::vector<std::string> files;

while(it.hasNext())
{
files.push_back(it.next().toStdString());
}

return files;

如何遍历目录但只获取目标文件夹中的文件?

最佳答案

可能会按照下面的说明尝试一下。这是粗略的代码,可能需要更多验证。

//FILTER THE SPECIFIC TARGET DIRECTORY.
QStringList filterFolder = {"TARGETFOLDERNAME"};
QDir directory("BASE DIRECTORY OF SEARCH");
QFileInfoList foldersTobeIterated = directory.entryInfoList(filterFolder);

//ITERATE THE FILTERED DIRECTORIES.
std::vector<std::string> files;
for(auto folder : foldersTobeIterated)
{
QDirIterator it(folder.absoluteFilePath(), QStringList() <<"*.txt", QDir::Files,QDirIterator::Subdirectories);
while(it.hasNext())
{
files.push_back(it.next().toStdString());
}
}

关于c++ - QT 如何使用 QDirIterator 访问子目录中的特定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54354965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com