在Qt中搜索带有zimage文件扩展名的文件

时间:2012-07-10 10:20:02

标签: c++ linux qt

我正在编写一个使用闪存驱动器升级固件的程序。我需要使用闪存设备中的图像升级内核。但我不知道如何在目录中找到带有zimage文件扩展名的文件。 我是Qt和Linux的新手。所以我不知道是否有可能找到具有特定格式的文件。任何人都可以帮助这个。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

在Qt中,没有通用的方法来访问整个文件系统上的OS搜索索引服务。因此,如果这就是您想要的,那么就需要像@BЈовић所提供的特定于操作系统的解决方案。

(注意:当程序让我明确指出某些内容时,我倾向于更喜欢它,而不是搜索整个文件系统......但如果它能够注意到必要文件何时位于与可执行文件相同的目录。)

无论如何......如果您知道要搜索的目录,那么QDir抽象将允许您设置过滤器并枚举与目录中的过滤器匹配的文件名:

QDir dir (zimagePath);
QStringList filters;
filters << "*.zimage";

foreach (QString file, dir.entryList(filters, QDir::Files)) {
    // ...
}

您可以阅读QDir文档以了解更多查看方式。

答案 1 :(得分:0)

您可以使用system()执行下一个脚本,并解析输出:

#!/bin/bash

find / -name '*.zimage' | grep .zimage > /tmp/zimage_files.txt

请注意,上述脚本将搜索所有文件和所有路径,并将输出放到/tmp/zimage_files.txt。如果你需要不同的东西,你需要稍微修改一下。