使用
QDirIterator似乎有一种简单的方法.
如果在当前工作目录中有一个名为“:”的目录,它可能会中断,并且您希望将来可以对其进行解析.无论如何,这不应该是现在关注的问题.
QStringList imageFileList;
QDirIterator dirIterator(“:”, QDirIterator::Subdirectories);
while (dirIterator.hasNext()) {
QFileInfo fileInfo = it.fileInfo();
if (fileInfo.isFile()) // Do not add directories to the list
imageFileList.append(it.next());
}
或者,这需要相当多的参与,但我认为它有效.我担心写这个没有更方便的方法.
main.qrc
images/1.jpg
images/2.jpg
images/3.jpg
images/4.jpg
main.cpp中
#include
#include
#include
#include
int main()
{
QTextStream standardOutput(stdout);
QFile file(“main.qrc”);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
standardOutput << “File open error:” << file.errorString() << “\n”;
return 1;
}
QXmlStreamReader inputStream(&file);
while (!inputStream.atEnd() && !inputStream.hasError()) {
inputStream.readNext();
if (inputStream.isStartElement()) {
QString name = inputStream.name().toString();
if (name == “file”)
standardOutput << “file: :/” << inputStream.readElementText() << “\n”;
}
}
return 0;
}
main.pro
TEMPLATE =香港vps app
TARGET = main
QT = core
SOURCES += main.cpp
构建并运行
qmake && make && ./main
产量
file: :/images/1.jpg
file: :/images/2.jpg
file: :/images/3.jpg
file: :/images/4.jpg
24656477