- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找类似于 python glob 函数的函数。
If my folder structure is:
folder1/abc1.txt
folder1/xyz1.txt
folder1/abc2.txt
folder2/abc3.txt
folder2/xyz4.txt
folder3/abc5.txt
然后如果我给出 */abc*
,我正在寻找以下输出:
folder1/abc1.txt
folder1/abc2.txt
folder2/abc3.txt
folder3/abc5.txt
我试过条目列表,但它只能让我过滤当前文件夹中的内容。
最佳答案
您当然可以像这样使用嵌入式循环递归遍历:
#include <QDir>
#include <QFileInfoList>
#include <QString>
#include <QStringList>
#include <QDebug>
void traverse(const QString &pattern, const QString &dirname, int level)
{
QDir dir(dirname);
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDot | QDir::NoDotDot);
static const QStringList stringList = pattern.split('/');
foreach (QFileInfo fileInfo, dir.entryInfoList(stringList.mid(level, 1))) {
if (fileInfo.isDir() && fileInfo.isReadable())
traverse(pattern, fileInfo.filePath(), level+1);
else if (stringList.size() == (level + 1))
qDebug() << fileInfo.filePath();
}
}
int main()
{
traverse("*/abc*", ".", 0);
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
"./folder1/abc1.txt"
"./folder1/abc2.txt"
"./folder2/abc3.txt"
"./folder3/abc5.txt"
关于c++ - 使用 QDir 过滤器列出子目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642435/
我的存储库中有一个文件夹,在运行时必须位于存储库外部的另一个路径中。因为我不想在我的应用程序每次运行时都复制该文件夹并且有重复项,所以我在第二个位置创建了一个快捷方式。但是,当使用 QDir entr
我知道,要从给定的绝对路径在 Qt 中创建新路径,您可以使用 QDir::makepath()如 dir.makepath(path) ,正如 this 中所建议的那样题。我在使用它时没有任何问题,并
QString FilePath2 = QFileDialog::getOpenFileName(this, tr("Open Directory"), "C:/", tr("Text files (
我在用 Qt 创建 dir 时遇到问题。 我想在文档目录中创建一个目录,所以我做了一些这样的事情: QString path("C:/Users/Me/Documents/MyApp/profiles
我有一个看起来像这样的相对路径和绝对路径: 绝对:/tmp/somedir 相对:anotherdir/file.txt 我想将两者( /tmp/somedir/anotherdir/file.txt
我在 Ubuntu 12.04 LTS 和 10.04 LTS 平台上工作,我遇到了 QDir::mkPath 问题。我正在尝试使用 mkPath 创建一个路径,比方说/john/play/games
在我的 Qt 程序中,我基本上是选择一个文件夹,查看内容,然后获取索引列表(0、1、2、3、......)。它显示了正确的文件(左),但转换的文件超出了预期。这是错误和代码的图片: 主窗口.h: #i
我正在寻找类似于 python glob 函数的函数。 If my folder structure is: folder1/abc1.txt folder1/xyz1.txt folder1/abc
我一直在尝试在Linux的根目录中创建一个目录。但由于我对Linux平台不太熟悉,我无法在QT中编写正确的程序。你能看一下我的代码并告诉我哪里出错了吗? #include #include #in
在 mac 上构建一个 Qt 程序 - 它在 windows 和 Linux 中都起作用。 1 #include 2 #include 3 .... 4 void afunction()
我的代码非常简单: void DirManagement::listFiles(QDir dir) { QFileInfoList list = dir.entryInfoList(QDir::
在我的程序中,我有一个 QDir 表示使用 QCoreApplication::applicationDirPath() 的可执行文件的位置,还有一个 QString 表示相对于可执行目录(使用 ..
我正在使用 QT 5.7,来自 doc : bool QDir::rename(const QString &oldName, const QString &newName) 为什么要指定目录的旧名称
setNameFilters 没有按我的预期工作,所以如果有人能解释我是否使用不正确,或者这可能是 Qt 中的错误: 这是我的代码示例: QDir export_folder("C:\path");
是否可以使用 QDir::entryList() 同时检索具有特定文件类型和目录名称的文件名? ? 我有国旗QDir::Dirs在我的代码中。但是因为我添加了 << "*.mp4" ,它忽略了文件夹。
Qt's doc说 QDir::entryInfoList 可以接受多个排序条件,但我不清楚该怎么做。 This enum describes the sort options available t
在为预先存在的 QDir 对象重新分配新路径时,我在 Qt (v4.8.4) 中遇到了异常情况。这是一个证明这一点的简化示例: QString path1("F:/"); //Path m
QFile 有一个静态函数 bool QFile::remove (const QString & fileName) [静态] 删除指定的文件。这很方便:我们有一个文件路径,我们使用一个命令来删除它
我是 Qt 的新手,正在学习如何使用 QDir 和 QFile 库重命名文件。 我知道如何重命名并且我可以做到,但是当我在这个循环中尝试时它不起作用。 QDir editFile; std::cout
有没有办法获得 2 个 QDir 对象的最近公共(public)父对象?例如: QDir d1("/someroot/parent/test/folder"); QDir d2("/someroot/
我是一名优秀的程序员,十分优秀!